ORDER BY 不按字母顺序排序
ORDER BY doesn't sort alphabetically
我使用以下 MySQL 查询来获取结果,按名称字母顺序排序:
SELECT * FROM `client` WHERE CONCAT(name, ', ', firstname) LIKE "%ti%" ORDER BY name
结果以某种方式排序,因此 ORDER BY 有效。不幸的是,它没有按预期工作。上面的查询给出了以下顺序,例如:
Kostic (31)
Hatscher (30)
为什么科斯蒂奇排在第一位?证明我错了,但 K 在字母表中位于 H 之后......(如果有帮助 - 名称字段是 varchar 类型。)
我知道在 ORDER BY 中未指定时 ASC 是默认值,但您是否尝试过将 ASC 放在.. ORDER BY 名称 ASC 之后。值得一试
ORDER BY name
K应该不可能排在H之前。可能前面是空白,甚至是一些不可打印的字符?
测试:
- 添加
AND name like 'K%'
时得到'Kostic (31)'吗?
- 当你添加
AND name like 'H%'
时你得到 'Hatscher (30)' 吗?
我使用以下 MySQL 查询来获取结果,按名称字母顺序排序:
SELECT * FROM `client` WHERE CONCAT(name, ', ', firstname) LIKE "%ti%" ORDER BY name
结果以某种方式排序,因此 ORDER BY 有效。不幸的是,它没有按预期工作。上面的查询给出了以下顺序,例如:
Kostic (31)
Hatscher (30)
为什么科斯蒂奇排在第一位?证明我错了,但 K 在字母表中位于 H 之后......(如果有帮助 - 名称字段是 varchar 类型。)
我知道在 ORDER BY 中未指定时 ASC 是默认值,但您是否尝试过将 ASC 放在.. ORDER BY 名称 ASC 之后。值得一试
ORDER BY name
K应该不可能排在H之前。可能前面是空白,甚至是一些不可打印的字符?
测试:
- 添加
AND name like 'K%'
时得到'Kostic (31)'吗? - 当你添加
AND name like 'H%'
时你得到 'Hatscher (30)' 吗?