mysql记录中的字母排序问题
我有1000+关键字的表格 表定义 关键词 关键字\u id [请注意排序规则和字符集为utf-8] 关键字可以是字母表,带有UTE-8字符,如“α-抑制剂”和“25-羟基葡萄糖”。。。所以它们是字母、数字和特殊字符的混合体 对以上内容进行排序 按关键字+0 ASC从kword订单中选择* 保持字母在顶部,数字/特殊字符在末尾 当我尝试从html添加新关键字时,新添加的关键字开始出现在结果集中 例如: 算盘 阿魏肟 A. A. A. ……直到50个第一关键字 在加入“Biomatrix”之后。相同的查询返回 算盘 阿魏肟 A. A. 生物基质 A. …直到50个关键字 你知道查询有什么问题吗?或者当你有这样一个混合字符时,还有什么其他的方法来排序mysql记录mysql记录中的字母排序问题,mysql,sql-order-by,Mysql,Sql Order By,我有1000+关键字的表格 表定义 关键词 关键字\u id [请注意排序规则和字符集为utf-8] 关键字可以是字母表,带有UTE-8字符,如“α-抑制剂”和“25-羟基葡萄糖”。。。所以它们是字母、数字和特殊字符的混合体 对以上内容进行排序 按关键字+0 ASC从kword订单中选择* 保持字母在顶部,数字/特殊字符在末尾 当我尝试从html添加新关键字时,新添加的关键字开始出现在结果集中 例如: 算盘 阿魏肟 A. A. A. ……直到50个第一关键字 在加入“Biomatrix”之后。相
关于,您正在指定一种排序,将字母字符放在第一位,然后是数字,数字按顺序排序。没有关于字母字符如何排序的规则 如果希望字母字符按字母顺序排在第一位:
order by keyword + 0 ASC, keyword
如果要以相反的插入顺序首先插入字母字符:
order by keyword + 0 ASC, keyword_id desc;
order by (left(keyword, 1) between '0' and '9') desc,
keyword_id desc;
如果希望字母字符先按逆插入顺序排列,然后按逆插入顺序排列数字:
order by keyword + 0 ASC, keyword_id desc;
order by (left(keyword, 1) between '0' and '9') desc,
keyword_id desc;
注意,最后两个假设
关键字\u id
是一个自动递增的列,用作插入顺序的代理。如果丢失+0
,会发生什么情况?