gpt4 book ai didi

sql - MySQL 不首先显示最短的结果

转载 作者:行者123 更新时间:2023-11-29 03:51:47 24 4
gpt4 key购买 nike

我们有一个标准的 MySQL 5.1 数据库,其中有一个名为 places 的表。我们有两列,name 和 name_bg,其中 name 是地点的英文名称,name_bg 是地点的保加利亚语名称。

我们有两个以“РИМ”开头的地方。 “Рим”和“Римини”。

+--------+--------+--------------+
| id     | name   | name_bg      |
+--------+--------+--------------+
| 221543 | Rimini | Римини       |
|  34514 | Rome   | Рим          |
+--------+--------+--------------+

像这样搜索时:

select id, name from places where name like 'рим%';

或者像这样:

select id, name from places where name_bg like 'рим%';

一切看起来都很好。

奇怪的是当像这样搜索时(GROUP BY 子句):

SELECT places.name, places.name_bg, places.country_id, countries.continent_id WHERE places.name LIKE 'рим%' OR places.name_bg LIKE 'рим%' ORDER ("CHAR_LENGTH(places.name), CHAR_LENGTH(places.name_bg), countries.continent_id, places.popular DESC") GROUP BY country_id LIMIT 10

查询首先返回 Римини 而不是 Рим。

我们已尝试对查询进行排序和分组,但无济于事。

甚至交换了地点的ID,结果还是一样。

我们想先得到做空结果。

欢迎提供任何帮助。

最好的,亚沃尔

最佳答案

我不清楚您为什么期望它应该这样做。 length函数做你需要的?

SELECT id,
name
FROM places
WHERE name_bg LIKE 'рим%'
OR name LIKE 'рим%'
ORDER BY Length(name)

关于sql - MySQL 不首先显示最短的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4596853/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com