我和我的"在"在mysql中的子句,我无法弄清楚什么是错误的。 所以我有两张桌子......
1)座位
(int)seat_id
2)注册
(int)register_id
(varchar)seat_ids - 以逗号分隔的席位,例如102,103,104
因此,我获取匹配结果的查询是
SELECT * FROM Seats s, Registers r
WHERE s.seat_id IN (r.seat_ids)
GROUP BY s.seat_id
有人能弄明白什么是错的吗?谢谢,
答案 0 :(得分:1)
IN
要求列表是文字列表,而不是逗号分隔的字符串。请使用FIND_IN_SET
:
WHERE FIND_IN_SET(s.seat_id, r.seat_ids)
答案 1 :(得分:0)
首先将seat_ids更改为int,否则维护一个单独的表,其中保持座位和寄存器的链接。
像下面的加入可以帮助2桌的俱乐部成绩
SELECT * FROM Seats s
JOIN Registers r ON s.seat_id = r.seat_ids
但这需要相同数据类型的Seats seat_id&注册seat_ids
@Barmar所说的可以使用