【发布时间】:2015-02-24 05:35:58
【问题描述】:
我有以下 MySQL 查询
SELECT * FROM `travels`.`destinations` AS `Des`
WHERE `Des`.`name` LIKE '%act%' AND `Des`.`sold` = 'N' AND `Des`.`active` = '1'
GROUP BY `Des`.`name` ORDER BY CASE
WHEN `Des`.`name` REGEX 'act*' THEN 0
WHEN `Des`.`name` LIKE '%act' THEN 1
WHEN `Des`.`name` LIKE '%act%' THEN 2
ELSE 3 END, name LIMIT 10
我想要达到的目标:
actabc
actzzz
abcact
zzzact
abcactzzz
act-act
当我按机制使用此组时,它首先显示连字符的结果,这是应该的。我首先想要字母,然后是符号,然后是数字。通配符的顺序相同。
这些是单独工作的: How to sort MySQL results with letters first, symbols last? 和 这有点令人困惑(也没有按照我的意愿给分组): mysql regex get position of matched first alphabetic character
有什么想法吗?
【问题讨论】:
标签: mysql sql regex select sql-order-by