【发布时间】:2015-07-24 09:11:54
【问题描述】:
请帮助我,我尝试如下获取类别列表,其中类别 ids 在 inclause 中传递,它返回两行。
mysql> select c_id,c_name from category where c_id in (870,854);
+------+---------------+
| c_id | c_name |
+------+---------------+
| 854 | Telugu |
| 870 | Telugu Events |
+------+---------------+
虽然相同的类别 id 被连接并作为参数传递给 inclause,但它只返回两行中的一行。
mysql> select c_id,c_name from category where c_id in (select concat(870,',',854) as c_id);
+------+---------------+
| c_id | c_name |
+------+---------------+
| 870 | Telugu Events |
+------+---------------+
请澄清一下。
谢谢。
【问题讨论】:
-
粗略地说,在 SQL 中以 CONCAT(或 GROUP_CONCAT)为解决方案没有问题。如果您发现自己在使用这些函数,那么您可能做错了什么。