SELECT `e`.`id`, `e`.`title`, `e`.`description`, `e`.`event_time`,(SELECT GROUP_CONCAT( name SEPARATOR " | " )
FROM `ar_products`
WHERE id IN **(e.products)** AS products FROM events e;
我在事件表中列出了包含列名产品的逗号分隔产品ID。如果我使用值54,33,23 ..它显示正确的值,如产品列表[product1 | product2 | ..]
。
当我在IN CLAUSE中直接使用列名时它无效。
答案 0 :(得分:20)
听起来您正在寻找FIND_IN_SET
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_find-in-set。将WHERE子句更改为:
WHERE FIND_IN_SET(id, e.products) AS products FROM events e;