0

我想从 table2 中的逗号分隔列中选择所有匹配项,其中列可能是这样的:0,1,2 OR 2,4,5 OR 2,5 OR 1,3,5 等。

我尝试过:

SELECT * from table where 1,3,5 IN(SELECT commaseparated FROM table2) WHERE ..

但是使用逗号时语句出错。

我也尝试过使用 REGEXP 但在我的情况下我需要搜索 1,3,5 内的所有匹配项

我该如何解决这个问题?:)

4

1 回答 1

3

在标准 SQL 中无法做到这一点。它是

   WHERE singlevalue IN (list, of, values)

如果您想将列表与列表进行比较,您应该修改您的表格,以便它们正确规范化。在字段中存储格式化数据基本上否定了拥有关系数据库的目的 - 如果数据不是允许形成关系的格式,则无法与数据建立关系。

如果这些 CSV 列表位于子表中,您可以执行一个非常简单的 JOIN 查询来满足您的规范。

于 2012-04-04T21:36:12.583 回答