Mysql查询语句排序
在程序开发过程中,客户提出了一个难解的问题
如图所示,上面的数据格式为a-b
要求排序方式是先按照a升序,再按照b升序
需要排序的自段位sort_name
SELECT
*
FROM
TABLE_NAME
ORDER BY
mid(
trim(sort_name),
1,
IF (
LOCATE('-', sort_name) <> 0,
LOCATE('-', sort_name),
2
) - 1
) * 1 ASC,
mid(
trim(sort_name),
IF (
LOCATE('-', sort_name) <> 0,
LOCATE('-', sort_name),
2
) + 1,
IF (
LOCATE('(', sort_name) <> 0,
LOCATE('(', sort_name) - LOCATE('-', sort_name) - 1,
LENGTH(sort_name) - LOCATE('-', sort_name)
)
) * 1 ASC