基于regexp的MySQL连接

时间:2009-06-26 15:58:43

标签: mysql sql

我有一个表格产品,其中一个列是相关产品。 relatedproducts包含由冒号分隔的串联产品ID字符串( column productid ),例如abc-123:foo-prod:ada69等。由于设计有些不好,有些产品可能会从产品表中删除,仍然会在相关产品列中引用。

所以我需要一个遍历products表中所有行的sql查询,通过爆炸数据来检查相关产品列(因此爆炸标题)并查看每个引用的产品是否存在于同一产品表中。但是,我是sql的新手,无法编写join / regexp查询来执行此操作。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:3)

MySQL可以匹配regexp,但遗憾的是无法返回匹配的子字符串。

您最好使用FIND_IN_SET

SELECT  *
FROM    products p
JOIN    product rel
ON      FIND_IN_SET(rel.id, REPLACE(p.related, ':', ','))