Heim  >  Fragen und Antworten  >  Hauptteil

Mehrere Anfangsbuchstaben zum Sortieren der Länder

In meiner High-School-Klasse lernen wir gerade etwas über MySQL und wie man Elemente anhand bestimmter Kriterien auswählt und sortiert. Zum Beispiel

Select CountryCode from Country where code like '_W%'

Dieser Code funktioniert in meiner Datenbank, aber es gibt ein Problem, das ich nicht lösen kann:

Rufen Sie alle Daten für Länder ab, die mit den Zeichen „N“, „O“ oder „P“ beginnen. sortiere sie Alphabetisch nach Namen geordnet.

Ich verstehe, dass wir Platzhalter verwenden müssen und ich habe alles versucht, aber es funktioniert einfach nicht, es werden entweder nur Länder angezeigt, die mit N beginnen, oder die vollständige Liste mit „null“

Meine aktuelle Codeabfrage ist

SELECT * from country where name like 'N%' 'O%' 'P%' order by name

Ich würde mich über jede Hilfe freuen, sobald ich andere Themen habe, mit denen ich mich befassen muss

Die Antwort sieht in etwa so aus: Aber detaillierter, mit mehr Spalten und Zeilen, mit Daten wie BIP, Lebenserwartung usw.

Name Festland
Namibia Afrika
Oman Asien
Pakistan Asien
-------- --------------

Danke Sohail für die Antwort, es hat funktioniert!

P粉797855790P粉797855790183 Tage vor404

Antworte allen(2)Ich werde antworten

  • P粉587780103

    P粉5877801032024-03-31 14:54:52

    ...name LIKE 'N%' OR name LIKE 'O%' OR name LIKE 'P%'

    不会非常高效,因为它将在内部被视为具有模式匹配的 3 个子查询。此外,OR 使得引擎有必要检查重复项 - 尽管我们知道没有重复项。 虽然其中大部分(但不是全部)将由优化器修复,但这样写会更好(也更易读):

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

    Antwort
    0
  • P粉115840076

    P粉1158400762024-03-31 11:05:36

    这应该有效,因为您必须编写 name LIKE 'N%' OR name LIKE ...

    SELECT * FROM country WHERE name LIKE 'N%' OR name LIKE 'O%' OR name LIKE 'P%' ORDER BY name

    Antwort
    0
  • StornierenAntwort