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

mysql cerca un catid in un campo di testo

MySQL può aiutarti a risolvere questi enormi errori di progettazione del database con la funzione FIND_IN_SET . Fai una prova:

SELECT * FROM articlepix 
WHERE published = 1 AND FIND_IN_SET('86', catid) > 0
ORDER BY RAND() LIMIT 1

Che ovviamente può essere semplificato in:

WHERE published = 1 AND FIND_IN_SET('86', catid)

Poiché la funzione restituisce solo 0 quando non c'è corrispondenza, ma potrebbe essere più difficile capire cosa fa :)