2013-06-01 4 views
0

제목이 -z 또는 0-9 문자로 시작하지 않는 레코드를 선택하고 싶습니다. 이 작업을 수행하는mysql에서 영문자가 아닌 레코드를 선택하십시오.

한 가지 방법은 다음과 같습니다이 할 수있는 더 좋은 방법이

SELECT * FROM table WHERE title NOT LIKE 'a%' AND... title NOT LIKE 'z%' .... 

있습니까?

답변

6

당신은 정규 표현식을 사용할 수 있습니다

select * 
from table 
where title regexp '^[^a-z0-9]' 

을 그건 그렇고, 처음 ^는 문자열의 시작과 일치합니다. 두 번째는 [] 사이의 패턴에있는 문자를 부정합니다.

2

또 다른 대안 :

SELECT * 
FROM table 
WHERE (LEFT(table, 1) NOT BETWEEN 'a' AND 'z') 
    AND (LEFT(table, 1) NOT BETWEEN '0' and '1') 
+0

흥미로운 솔루션 +1하지만 일부 오타가. LEFT (fieldName, 1) 여야하며 '0'과 '9'사이에도 있어야합니다. – ankurtr

관련 문제