Sante Caserio
pubblicato più di 2 anni fa

L'operatore LIKE in MySQL

Le operazioni di ricerca nel testo attraverso l'operatore LIKE

Per effettuare ricerche in un testo testo, MySQL permette di utilizzare l’operatore LIKE. Esso si differenzia dall’operatore di uguaglianza (=) perchè non è case sansitive e perchè permette l’uso di due caratteri jolly, cioè caratteri che hanno un significato speciale.

_ significa ‘un qualsiasi carattere’
% significa ‘qualsiasi sequenza di 0 o più caratteri’

Ad esempio:

1SELECT saluto FROM saluti WHERE saluto LIKE 'ciao, _ino!'

Potrebbe trovare:

  • Ciao, Pino!
  • Ciao, Nino!
  • Ciao, Gino!

Ma l’uso più comune consiste nel cercare un termine all’inizio, alla fine o in qualsiasi punto del testo:

1SELECT titolo FROM favola WHERE testo LIKE 'c\'era una volta%';
2... LIKE '%felici e contenti';
3... LIKE '%parolachiave%';

Naturalmente vi sono casi in cui potremmo voler cercare proprio il carattere ’%’ o il carattere ’_’, perciò dovremo chiarire che in quel determinato contesto non avranno il ruolo di jolly. Per fare questo verranno preceduti da un carattere di escape. Il carattere di escape predefinito è ’\’:

1SELECT * FROM articolo WHERE testo LIKE '90\%';

Per vari motivi però potremmo voler utilizzare un carattere diverso come escape, ecco come fare:

1SELECT * FROM articolo WHERE testo LIKE '90/%' ESCAPE '/';

Possiamo addirittura fare in modo che non vi sia alcun carattere di escape se non ne abbiamo bisogno:

1SELECT * FROM articolo WHERE testo LIKE '90/%' ESCAPE '';

In ogni caso l’escape non può essere costituito da più di un carattere.

E’ possibile forzare LIKE ad essere case sensitive utilizzando il modificatore BINARY:

1SELECT testo FROM articolo WHERE testo LIKE BINARY '%Giovanni%'

Il complemento di LIKE è NOT LIKE:

1SELECT 'a' NOT LIKE 'b'; # restituisce 1
2SELECT NOT ('a' LIKE 'b'); # restituisce 1

Condividi su:

Esprimi un voto:

  • Current rating: 0.0/5
  • 1
  • 2
  • 3
  • 4
  • 5

Argomenti chiave:

Ultimi commenti Ultimi commenti

Esegui il Login oppure registrati per scrivere un commento.
Cerca nel sito...
Ultime recipes

Un utilissimo tool di shell che effettua un dettagliato e comodo report su MySQL MySQL Report un tool di shell per tenere tutto sotto controllo

Un utilissimo tool di shell che effettua un dettagliato e comodo report su MySQL


Vai alla recipe

Un utilissimo tool per sniffare il traffico Client/Server TCP/IP di MySQL MySQLSniffer sniffare il traffico TCP di MySQL

Un utilissimo tool per sniffare il traffico Client/Server TCP/IP di MySQL


Vai alla recipe

Verificare l'integrità, riparare gestire chiavi e memoria di tabelle MyISAM attraverso myisamchk riparare file MyISAM

Verificare l'integrità, riparare gestire chiavi e memoria di tabelle MyISAM attraverso il file myisamchk


Vai alla recipe

Un tool per comprimere le tabelle MyISAM fino a oltre il 50% myisampack comprimere file MyISAM

Un tool per comprimere le tabelle MyISAM fino a oltre il 50%


Vai alla recipe

mysqlshow le info di base sui database, tabelle e colonne senza utilizzare alcun mysqlshow visualizzare le informazioni sul database MySQL

mysqlshow le info di base sui database, tabelle e colonne senza utilizzare alcun client


Vai alla recipe

Utilizzando UNION / UNION ALL su campi int unsigned zerofill,
ho notato che MysqlUNION / UNION ALL su campi int unsigned zerofill. di DebUsr
Vai al tip

Utilizzo di funzioni come alias di campo tramite l'impiego di prepared statementReport con alias di campo dinamici di john_revelator
Vai al tip

Può capitare che sia necessario eseguire un dump di database in formato Comma SeparatedEsecuzione dump in formato CSV (tabelle in engine MyIsam esportate in formato CSV) di ghigomatto
Vai al tip

E' possibile eseguire le query SQL contenute in un file di testo. Questo è utileEseguire le query da un file di testo di Sante Caserio
Vai al tip

Se vogliamo fare il backup di tutti i database con mysqldump, e ne abbiamo parecchiFare il backup di tutti i database di Sante Caserio
Vai al tip

Salve,vorrei chiedervi un aiutino per una query che mi infastidisce un pò.
Ho 4 aiuto per una query! di fighterdorico Vai al topic

Salve,vorrei chiedervi un aiutino per una query che mi infastidisce un pò.
Ho 4 aiuto per una query! di fighterdorico Vai al topic

Salve,vorrei chiedervi un aiutino per una query che mi infastidisce un pò.
Ho 4 aiuto per una query! di fighterdorico Vai al topic

Salve a tutti.

Ho una tabella con lettere accentate.
Le lettere vengono visualizzate ordinamento tabelle di ditch Vai al topic

Salve a tutti.

Ho una tabella con lettere accentate.
Le lettere vengono visualizzate ordinamento tabelle di ditch Vai al topic