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

0

는 특수 문자를 무시 할 수 있습니다 도움이 될 수 mysql_real_escape_string 이 링크를 사용하여 예상대로 http://in.php.net/mysql_real_escape_string

+0

PHP는 ... –

+0

하지만 게시물에'''문자도 표시하고 싶습니다. –