按位置排序mysql

j8ag8udp  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(383)

我试图通过根据字符串的出现情况定位字符串来检索数据集,请检查下面的查询-

select name, LOCATE('test', name) 
from afkapi_dev.articles 
where name like '%test%' 
order by LOCATE('test', name) ASC

结果集为-

结果集非常好,但这里的问题是顺序。有人能解释一下为什么“测试”列在“测试下限”的上面,并提出一种实现这一点的方法吗。
谢谢您

qgelzfjb

qgelzfjb1#

你好像在要求做进一步的分类 name . 对于多级排序,可以在中指定不同的列/表达式 ORDER BY 子句,用逗号分隔,并具有相应的排序顺序 [ASC or DESC] 此外,还可以将 LOCATE(..) 中的表达式 SELECT 子句,并在 ORDER BY . 这应防止重新计算 LOCATE(..) 价值观。

select name, LOCATE('test', name) AS location 
from afkapi_dev.articles 
where name like '%test%' 
order by location ASC, name ASC

相关问题