mysql-使用CSV从另一个表的B列获取表A列中的值

朋友您好,我有两个表,如下所示:

Table Items
+--------------------+
| id | item          |
+----+---------------+
| 1  | Table         |
+----+---------------+
| 2  | couch         |
+----+---------------+
| 3  | Bed           |
+----+---------------+
| 4  | Chair         |
+----+---------------+
| 5  | Desk          |
+----+---------------+

Table Acme
+--------------------+--------+
| id | items         | Client |
+----+---------------+--------+
| 1  | 1,3,5         | S45-56 |
+----+---------------+--------+

我需要使用Acme表中的CSV在Items表中选择项目

我尝试使用以下查询,但仅获取第一个树值

SELECT * FROM Items WHERE id IN (SELECT items FROM Acme WHERE client ='S45-56')

任何想法?

预先感谢.

解决方法:

您可以使用find_in_set()检查值是否在逗号分隔的列表中.

SELECT i.*
       FROM items i
            INNER JOIN acme a
                       ON find_in_set(i.id, a.items)
       WHERE a.client = 'S45-56';

但是最好修复您的架构,不要使用逗号分隔的列表,而要使用表中的多行.

上一篇:PHP-使用带有复选框和联接表的daterange过滤数据


下一篇:将PHP DateTime对象转换为MYSQL日期的字符串表示形式