2013-05-20 4 views
14

Ho una tabella CANDIDATE nel mio db che gira sotto MySQL 5.5 e sto cercando di ottenere le righe dalla tabella in cui la RAM è contenuta in firstname, quindi posso eseguire sotto due query, ma mi piacerebbe ora quale query che dovremmo usare a lungo termine rispetto all'ottimizzazione.MySQL | REGEXP VS Come

SELECT * FROM CANDIDATE c WHERE firstname REGEXP 'ram'; 
SELECT * FROM CANDIDATE c WHERE firstname LIKE'%ram%'; 
+0

Giusto per notare, se stai cercando istanze di un set di caratteri/caratteri, usa un'espressione regolare. –

risposta

3

Se è possibile utilizzare COME invece di REGEXP, uso come

7

REGEXP e LIKE vengono utilizzati a casi completamente diversi.

LIKE viene utilizzato per aggiungere caratteri jolly a una stringa mentre REGEXP viene utilizzato per abbinare un attributo con le espressioni regolari.

Nel tuo caso un firstname è più probabilità di essere abbinato con LIKE di REGEXP e, di conseguenza, sarà più ottimizzata.

0

Migliore utilizzo della query LIKE anziché di REGEXP se non si è sicuri del valore.

Anche LIKE è molto più veloce di REGEXP.