MySQLは、関数 FIND_IN_SET
。これを試してみてください:
SELECT * FROM articlepix
WHERE published = 1 AND FIND_IN_SET('86', catid) > 0
ORDER BY RAND() LIMIT 1
もちろん、次のように簡略化できます。
WHERE published = 1 AND FIND_IN_SET('86', catid)
関数は0
のみを返すため 一致するものがないが、それが何をするのか理解するのが難しいかもしれないとき:)