Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想从 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 内的所有匹配项
我该如何解决这个问题?:)
在标准 SQL 中无法做到这一点。它是
WHERE singlevalue IN (list, of, values)
如果您想将列表与列表进行比较,您应该修改您的表格,以便它们正确规范化。在字段中存储格式化数据基本上否定了拥有关系数据库的目的 - 如果数据不是允许形成关系的格式,则无法与数据建立关系。
如果这些 CSV 列表位于子表中,您可以执行一个非常简单的 JOIN 查询来满足您的规范。