Plusieurs lettres de départ pour trier les pays
P粉797855790
P粉797855790 2024-03-30 22:35:22
0
2
494

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 name

J'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.

NomContinentNamibieAfriqueOmanAsiePakistanAsie----------------------
Merci Sohail pour la réponse, ça a marché !

P粉797855790
P粉797855790

répondre à tous(2)
P粉587780103
...name LIKE 'N%' OR name LIKE 'O%' OR name LIKE 'P%'

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 :

select * from country
 where left(name, 1) in 'NOP'
 order by name
P粉115840076

Cela devrait fonctionner car il faut écrire name LIKE 'N%' OR name LIKE ...

SELECT * FROM country WHERE name LIKE 'N%' OR name LIKE 'O%' OR name LIKE 'P%' ORDER BY name
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal