Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL Wildcard per =- ce n'è uno

LIKE è fondamentalmente uguale a =, tranne che LIKE ti consente di utilizzare caratteri jolly.

Queste due query restituiranno gli stessi risultati:

SELECT * FROM table WHERE col LIKE 'xyz';
SELECT * FROM table WHERE col='xyz';

Senza '%' nella query LIKE, è effettivamente uguale a '='.

Se stai effettuando una selezione su una colonna intera, dovresti considerare di utilizzare gli operatori IN() o BETWEEN. Sembra che tu abbia due condizioni separate che dovrebbero essere gestite nel tuo codice, invece che nella query, poiché le tue condizioni richiedono almeno due diversi tipi di query.

Modifica:dovrei chiarire che LIKE e =sono simili solo nell'utilizzo normale e banale del confronto di stringhe. Dovresti controllare il Manuale MySQL per dettagli su come funziona, poiché ci sono situazioni in cui non è lo stesso (come i set di lingue).