我有1000多个关键字的表格。
表定义 关键词 keyword_id
[请注意整理和字符集是utf-8]
关键字可以是字母,UTE-8字符,如“α-抑制剂”和“25 hyrdoglucose”......所以它们是字母,数字和特殊字符的混合。
要对上述内容进行排序
按关键字+ 0 ASC
从kword顺序中选择*
将字母保持在最顶层,将数字/特殊字符保留在最后。
当我从html尝试添加新关键字时,新添加的关键字开始在结果集的中间!...
示例:
算盘 Abaximal 一个... 一个... 一个... .......直到50第一个关键字
添加“Biomatrix”后。相同的查询返回
算盘 Abaximal 一个... 一个.... 生物基质 一个.... .....到50个关键字
任何想法是什么错误的查询或什么是其他方式来排序mysql记录当你有这样的混合字符。
此致
答案 0 :(得分:1)
您指定的排序首先将字母字符放入数字,然后将数字按顺序排序。关于如何对字母字符进行排序没有规则。
如果您希望首先按字母顺序排列字母字符:
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;
请注意,最后两个假设keyword_id
是一个自动递增的列,用作插入顺序的代理。