首頁  >  問答  >  主體

用於對國家/地區進行排序的多個起始字母

現在在我的高中班級中,我們正在學習 MySQL 以及如何根據某些條件選擇和排序項目。例如

Select CountryCode from Country where code like '_W%'

這段程式碼在我的資料庫中有效,但還有一個我無法解決的問題:

檢索以字元「N」、「O」或「P」開頭的國家/地區的所有資料。對它們進行排序 按名稱字母順序排列。

我明白我們必須使用通配符,並且我嘗試了一切,但它就是行不通,它要么只顯示以 N 開頭的國家,要么顯示“null”的完整列表

我現在的程式碼查詢是

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

我希望盡快得到任何幫助,因為我還有其他需要處理的科目

答案看起來有點像這樣:但更詳細,包含更多列和行,其中包含 GDP、預期壽命等資料

姓名 大陸
納米比亞 非洲
阿曼​​ 亞洲
巴基斯坦 亞洲
-------- --------------
#

感謝 Sohail 的回答,它成功了!

P粉797855790P粉797855790183 天前403

全部回覆(2)我來回復

  • 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

    回覆
    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

    回覆
    0
  • 取消回覆