我有一個events
表,其中有一個字段名爲breaks
。這些數據以逗號分隔的格式填充,即1,2,3
或1
或1,4,5
- 與MySQL的IN
命令使用的格式相同。從一個表中使用逗號分隔的列表作爲另一個表的查詢子句
然後我想運行一個查詢 - 在slots
表上 - 將所有行與events.breaks
中指定的行相區別。
查詢,從理論上說,應該是這樣的:
SELECT
`slots`.`id` AS id,
RIGHT(`slots`.`time`, 8) AS `time`
FROM
`slots`, `event`
WHERE
`slots`.`id` NOT IN (`event`.`breaks`)
但這似乎並沒有工作 - 如果event.breaks
爲4,5,7
,從slots
表不返回唯一的行4
!
SQLFiddle這裏:http://sqlfiddle.com/#!2/913fe/1/0
您應該查看FIN D_IN_SET作爲潛在的解決方案。 – AgRizzo