sql >> Databasteknik >  >> RDS >> Mysql

mysql sök efter en catid i ett textfält

MySQL kan hjälpa dig kringgå detta enorma databasdesignfel med funktionen FIND_IN_SET . Prova detta:

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

Vilket givetvis kan förenklas till:

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

Eftersom funktionen endast returnerar 0 när det inte finns någon match, men det kan vara svårare att förstå vad det gör :)




  1. Hur får man ett heltal från MySQL som heltal i PHP?

  2. SQLite-uppdatering

  3. Lagra procedurer i phpMyAdmin

  4. Skapa PHP-array från MySQL-kolumnen