用于对国家/地区进行排序的多个起始字母
P粉797855790
P粉797855790 2024-03-30 22:35:22
0
2
503

现在在我的高中班级中,我们正在学习 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粉797855790
P粉797855790

全部回复(2)
P粉587780103
...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粉115840076

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

SELECT * FROM country WHERE name LIKE 'N%' OR name LIKE 'O%' OR name LIKE 'P%' ORDER BY name
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板