What is wrong with my “where in” clause in mysql?
My two tables SEATS
and REGISTERS
look like this
x
-- SEATS REGISTERS
| seat_id (int) | | register_id (int)| seat_id (varchar) |
|===============| |==================|===================|
| 102 | | 3 | 102,103,104 |
| 103 | | 234 | 546,547 |
The query to fetch the matching results is
SELECT * FROM Seats s, Registers r
WHERE s.seat_id IN (r.seat_ids)
GROUP BY s.seat_id
Can someone figure out what’s wrong ? Thanks,
Advertisement
Answer
IN
requires the list to be a literal list, not a comma-delimited string. Use FIND_IN_SET
for that:
WHERE FIND_IN_SET(s.seat_id, r.seat_ids)