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

时间:2013-07-10 12:32:25

标签: 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;

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

当我在IN CLAUSE中直接使用列名时它无效。

1 个答案:

答案 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;