2012-10-08 57 views
1

注意:我编辑了我的问题,因为我的输入数据存在于数据库表中。字符串数据的Mysql列排序

我有一个表,它由varchar数据组成。该列中的数据就是这样的。

"bcd" 
cde 
abcd 
'xxx' 
(zzz) 

现在我想根据字母顺序进行排序。我曾尝试此查询

select my_col from tbl_user order by ltrim(REPLACE(my_col,'"', '')) ASC 

其输出如下:

'xxx' 
(zzz) 
abcd 
"bcd" 
cde 

但我想要的输出,是指在排序它按字母顺序是否"存在或不进行排序。

abcd 
"bcd" 
cde 
'xxx' 
(zzz) 

我该如何做到这一点??。有任何想法吗。

回答

4

你可以做的引号代替,例如:

select my_col 
from tbl_user 
order by ltrim(REPLACE(my_col,'"', '')) ASC 

但是,这会增加开销了很多......也许有一个内置的解决方案,它会更有效。

+0

它的工作如预期。谢谢.. –

1

修整()时排除报价;

... 
order by 
    trim(both '"' from `your_column`) asc 
1

试试这个:

select my_col 
from tbl_user 
order by 
    SUBSTR(my_col, 2) ASC 
2
select * from 
tlb_user 
order by replace(my_col, '"', '); 

SqlFiddle