現在在我的高中班級中,我們正在學習 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粉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
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