Dans ma classe de lycée, nous apprenons actuellement MySQL et comment sélectionner et trier des éléments en fonction de certains critères. Par exemple
Select CountryCode from Country where code like '_W%'
Ce code fonctionne dans ma base de données, mais il y a un problème que je n'arrive pas à résoudre :
Récupérez toutes les données des pays commençant par les caractères "N", "O" ou "P". les trier Classés par ordre alphabétique des noms.
Je comprends que nous devons utiliser des caractères génériques et j'ai tout essayé mais ça ne marche tout simplement pas, soit cela affiche uniquement les pays commençant par N, soit la liste complète avec "null"
Ma requête de code actuelle est
SELECT * from country where name like 'N%' 'O%' 'P%' order by nameJ'apprécierais toute aide dès que j'ai d'autres sujets à traiter
La réponse ressemble un peu à ceci : Mais plus détaillée, avec plus de colonnes et de lignes, avec des données comme le PIB, l'espérance de vie, etc.
Continent | |
---|---|
Afrique | |
Asie | |
Asie | |
-------------- |
ne sera pas très efficace puisqu'elle sera traitée en interne comme 3 sous-requêtes avec correspondance de modèles. De plus, OR oblige le moteur à rechercher les doublons - même si nous savons qu'il n'y a pas de doublons. Même si la plupart (mais pas la totalité) de ces problèmes seront corrigés par l'optimiseur, il est préférable (et plus lisible) d'écrire comme ceci :
Cela devrait fonctionner car il faut écrire
name LIKE 'N%' OR name LIKE ...