2013-04-16 16 views

risposta

9

Per MySQL è possibile utilizzare REGEXP o RLIKE per controllare colonna specifica per pattern matching. Nel tuo caso seguente esempio potrebbe funzionare:

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

Grazie per questo, sai di una sequenza di escape per *? Lo voglio anche come personaggio illegale, cercando di trovare qualcosa su di esso. –

+1

Scappa tutto con la barra rovesciata. Risultato: '[\ £ \ $ \% \^\ & \ * \?]'. – BlitZ

+0

@CORRUPT +1 per una risposta facile, semplice e buona. –

0

È possibile utilizzare LIKE per il pattern matching,

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

Se ho capito correttamente questo si desidera che tutte le righe che hanno caratteri non alfanumerici diversi dalle cifre e alfabeti

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

Il ^ all'interno [ ] Charcter classe implica la negazione mentre all'esterno, all'inizio dell'espressione regolare, specifica l'inizio del valore della colonna. $ imples che termina il valore stringa

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

... ecc. '% char%' significa che c'è char da qualche parte, '% char' significa che il char è alla fine della stringa, 'char%' significa che è all'inizio. '% \ %%' significa che il char cercato (%) è un carattere speciale usato da mysql e '\' è necessario.

Problemi correlati