MySQL peut vous aider à contourner ces énormes erreurs de conception de base de données avec la fonction FIND_IN_SET
. Essayez ceci :
SELECT * FROM articlepix
WHERE published = 1 AND FIND_IN_SET('86', catid) > 0
ORDER BY RAND() LIMIT 1
Qui bien sûr peut être simplifié en :
WHERE published = 1 AND FIND_IN_SET('86', catid)
Comme la fonction ne renvoie que 0
quand il n'y a pas de correspondance, mais il peut être plus difficile de comprendre ce qu'il fait :)