按字母排序,忽略括号

时间:2018-04-06 14:48:07

标签: mysql sql

如何通过字母排序选择并忽略括号?

SELECT name FROM table1 ORDER BY name;

它返回:

(stu)
abc
suv

我想:

abc
(stu)
suv

3 个答案:

答案 0 :(得分:1)

在订购前删除括号:

SELECT name
FROM table1
ORDER BY REPLACE(name, '(', '');

但是,这使得它不使用name列上的任何索引,因此如果表很大,性能将不会很好。

如果括号在开头和结尾只能是一对,只需删除第一个字符(如果是括号),就可以稍微提高性能:

SELECT name
FROM table1
ORDER BY CASE WHEN LEFT(name, 1) = '(' THEN SUBSTR(name, 2) ELSE name END;

答案 1 :(得分:0)

尝试这样的事情: SELECT name FROM table1 ORDER BY REPLACE(name, '(', '');

答案 2 :(得分:0)

尝试:

SELECT name FROM table1 ORDER BY REPLACE(REPLACE(name, '(', ''), ')', '');