2013-04-16 18 views

Odpowiedz

9

dla MySQL można użyć REGEXP lub RLIKE sprawdzić konkretną kolumnę do dopasowywania wzorców. W twoim przypadku Poniższy przykład może działać:

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

Dziękuję za to, czy znasz sekwencję ucieczkową dla *? Chcę tego również jako nielegalną postać, starając się znaleźć cokolwiek na jej temat. –

+1

Ucieknij wszystko z odwrotnym ukośnikiem. Wynik: '[\ £ \ $ \% \^\ & \ * \?]'. – BlitZ

+0

@CORRUPT +1 dla łatwej, prostej i dobrej odpowiedzi. –

0

Można używać LIKE do dopasowywania wzoru,

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

Gdybym zrozumiał to właściwie chcesz, aby wszystkie wiersze, które mają niepoprawny znaków alfanumerycznych, czyli inne niż cyfry i alfabetów

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

^ wewnątrz [ ] charcter klasa oznacza negację while na początku wyrażenia regularnego określa początek wartości kolumny. $ imples zakończenie wartości ciągu

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

... itp. "% char%" oznacza, że ​​gdzieś jest char, "% char" oznacza, że ​​znak jest na końcu łańcucha, "char%" oznacza, że ​​jest na początku. "% \ %%" oznacza, że ​​wyszukiwany znak (%) jest specjalnym znakiem używanym przez mysql i konieczne jest '\'.