I’m trying to do a mysql search (in php) for a catid number within a text field. I’m currently using LIKE but I need it more specific. Here’s my code:
SELECT * FROM articlepix
WHERE published = 1 AND catid LIKE '%86%'
ORDER BY RAND() LIMIT 1
^^ I’m looking for the number 86 within the catid field, but I want it to look for only 86, currently it’s pulling out the data with the number 186 too.
The above example grabs the field where the catid is “91,107,36,139,146,168,186”.
Is it possible to search for just ’86’ rather than everything that includes %86%? If that makes sense?
MySQL can help you workaround this huge database design errors with function
FIND_IN_SET. Give this a try:Which of course can be simplified into:
As the function only returns
0when there is no match, but it might be harder to understand what it does 🙂