2013-04-16 37 views
5

Ben sütun bir listeden bir öğe içeren bir tablodan tüm satırları seçmek için çalışıyorum gelen öğesi içeren:MySQL: Seç satır sütun listesindeki

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

Bu gibi şey temelde yasadışı karakter çek.

Herkes yardımcı olabilir mi? Sen desen eşleştirme LIKE kullanabilirsiniz

Teşekkür

cevap

9

MySQL için, desen eşleşmesi için belirli sütununu kontrol REGEXP veya RLIKE kullanabilir. Senin durumunda Aşağıdaki örnek çalışabilir:

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

Bunun için teşekkürler * için kaçış dizisi biliyor musunuz? Bunu da yasadışı bir karakter olarak istiyorum, üzerinde herhangi bir şey bulmaya çalışıyorum –

+1

Ters eğik çizgi ile her şeyden kaçış. Sonuç: '[\ £ \ $ \% \^\ & \ * \?]'. Kolay, basit ve iyi bir cevap için – BlitZ

+0

@CORRUPT +1. –

0

,

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

Sana olmayan alfanümerik karakterler var tüm satırları dışındaki yani istediğiniz doğru bu anlasalardı rakam ve harfleri

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

^[ ] charcter içindeki sınıf olumsuzlamasıydı ima Düzenli ifadenin başında dışarıdayken sütun değerinin başlamasını belirtir. dize değeri

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

... vb bitiş $ imples. '% char%', bir yerde char olduğu anlamına gelir, '% char' karakter dizisinin sonunda olduğu anlamına gelir, 'char%', başlangıçta olduğu anlamına gelir. '% \ %%', aranan char (%) mysql tarafından kullanılan özel bir karakterdir ve '\' gereklidir.