2013-04-16 3 views
5

내가 열이 목록에서 요소를 포함하는 테이블에서 모든 행을 선택하려고에서 요소를 포함 :MySQL은 : 선택 행 열 목록

Select * from `table` where `column` (contains anything from {£,$,%,^,&,...,/}) 

이 같은 뭔가 근본적으로 잘못된 문자가 검사입니다.

아무도 도와 줄 수 있습니까? 당신은 패턴 매칭을위한 LIKE 사용할 수 있습니다

감사

답변

9

MySQL을 위해 당신은 패턴 매칭에 대해 특정 열을 확인 REGEXP 또는 RLIKE를 사용할 수 있습니다. 귀하의 경우에는 다음 예제는 작동 할 수 있습니다 :

SELECT * FROM `table` WHERE `column` REGEXP '[\£\$\%\^\&]'; 
+0

감사합니다. *에 대한 이스케이프 시퀀스를 알고 계십니까? 나는 이것도 불법 문자로 원한다. 아무 것도 찾지 않으려 고 애 쓰고있다. –

+1

모든 것을 백 슬래시로 빠져 나온다. 결과 :'[\\ \ \ \ % \^\ & \ * \?] '. – BlitZ

+0

@CORRUPT +1은 쉽고 간단하며 좋은 답변입니다. –

0

,

SELECT * 
FROM `table` 
WHERE `column` LIKE '%£%' OR 
     `column` LIKE '%$%' OR 
     `column` LIKE '%\%%' OR 
     `column` LIKE '%&%' 
0

난 당신이 영숫자가 아닌 문자가 모든 행보다 다른, 즉 원하는을 제대로 이해하면 숫자와 알파벳

SELECT * FROM `table` WHERE `column` REGEXP '^[^a-zA-Z0-9]+$' 

^[ ] 뜯거나 내부 클래스는 부정을 의미 정규 표현식의 시작 부분은 외부에서 컬럼 값의 시작을 지정합니다. $ 문자열 값 끝의 imples

0
SELECT * FROM table WHERE column LIKE '%\%%' OR column LIKE '%$%' OR column LIKE '%&%'; 

... 등. '% char %'는 어딘가에 char가 있음을 의미합니다. '% char'는 char이 문자열의 끝에 있음을 의미하고, 'char %'는 시작 부분에 있음을 의미합니다. '% \ %%'는 검색된 char (%)이 mysql에서 사용되는 특수 문자이고 '\'가 필요함을 의미합니다.