2012-10-08 97 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