2017-09-11 1 views
0

간단한 쿼리로 생각한 것이 큰 골칫거리로 변하고 있습니다.Select * TRIM (ALL [: nonalphnum :] FROM`title`)에 의한 주문 테이블에서.

제목에 영숫자가 아닌 문자를 모두 트리밍하여 주문하고 싶습니다.

as ... 결과를 영숫자로 정렬하지만 영숫자가 아닌 문자는 무시합니다 ... 데이터베이스에서 제거하지 않고 단지 거기에 없다고 가정합니다.

+0

REGEXP_REPLACE()라는 사용자 정의 sql 함수를 만듭니다. php에서 preg_replace()와 같이 작동 시키십시오. 정규 표현식을 사용하여 기호를 필터링하면 멋집니다. –

+0

BTW 나는 1000 배가되었으므로 내기를했다. 나는 그것을 찾는다. P –

+0

5 초 ... https://github.com/mysqludf/lib_mysqludf_preg#readme ... 작동하는지 확인하지는 않았지만 select 문에서 복사 및 적용 가능 –

답변

0

트림이 캐릭터 클래스에서 작동하지 않는다고 생각합니다. 귀하의 케이스는 함수를 대체하는 정규 표현식의 포스터 예제입니다 ... mysql은 afaik를 제공하지 않습니다.

당신이 할 수있는 일은 다음과 같습니다 : alphanum으로 제목을 쓰는 곳에 여분의 열을 만드십시오 - php - (삽입 할 때 또는 기존 행에 대해 한 번 작성)를 선택하고 정렬하십시오.

+0

다중 트림은 어떨까요? 동일한 검색어로 – Wolfe

+0

글쎄, 제거하려는 문자가 몇 개 밖에없는 한이 방법이 효과가있을 수 있지만 [: nonalphnum :] (그게 무엇이든지간에) 엄청난 양의 다른 기호처럼 들릴 수 있습니다 ... – Jakumi

0

확인을 클릭하십시오. 못생긴 것이지만, 영숫자가 아닌 모든 문자를 제거 할 필요가 없기 때문에 작동합니다.

SELECT * FROM `table` ORDER BY TRIM(BOTH '"' 
FROM (TRIM(LEADING '$' 
FROM (TRIM(BOTH '\'' 
FROM (TRIM(BOTH '#' 
FROM (TRIM(BOTH '&' 
FROM (TRIM(BOTH '(' 
FROM (TRIM(BOTH '-' 
FROM `title`))))))))))))) ;