我们可以在mysql的子句中使用列名吗?

max*_*com 2 mysql clause inner-query

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;
Run Code Online (Sandbox Code Playgroud)

我在事件表中列出了包含列名产品的逗号分隔产品ID.如果我使用值54,33,23 ..它显示正确的值,如产品列表[product1 | product2 | ..].

当我在IN CLAUSE中直接使用列名时,它无法正常工作.

kei*_*eld 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;
Run Code Online (Sandbox Code Playgroud)