在WHERE IN查询中使用另一列逗号分隔值作为String

时间:2014-06-12 19:27:03

标签: mysql sql

我有一个MySQL数据库表如下

MyTable
+------+------+------------------+
| id   | name |  items           |
+------+------+------------------+
|    1 | John |item1,item2,item3 |
|    2 | Ram  |item1,item2       |
+------+------+------------------+

有没有办法可以使用IN子句中的项值?我知道它将整个事物视为1个字符串,但无论如何它会将它视为单独的项目,几乎就像我手动将这些项目作为原始查询插入一样?

1 个答案:

答案 0 :(得分:-1)

  1. 进行查询,将数字返回到您可能拥有的最大元素数

    N
    --
    1
    2
    ..
    
  2. 使用SUBSTR和INSTR编写查询以从列表中提取第i个元素

  3. 使用第二个查询加入第一个查询,将N作为第i个元素,然后过滤掉空值