使用mysql中的regexp动态查找数据

时间:2015-06-27 06:24:50

标签: mysql regex

我对单个topic_id的查询是:

SELECT * FROM `worksheets` WHERE `topic_list` RLIKE `'[\,](340)[\,]|^(340)[,]|[,](340)$')`;

其中'topic_list'是逗号分隔列表,而regexp中的340是topic_id,应该来自另一个名为Topic的表(有两列topic_id和topic_name)。在此查询中,我选择了topic_id 340位于topic_id(即topic_list)的逗号分隔列表中的所有工作表。

我在两个表之间没有任何公共列。 我想要的是regexp中的topic_id,即340是动态的,应该来自Topic表。有没有办法在单个查询中而不是在多个查询中执行它,或者在循环中的编程环境中的regexp中提供topic_id?

我尝试了下面的查询,但它没有用 -

SELECT t.topic_id, w.`worksheet_type`,w.`worksheet_action_dttm` FROM `worksheets` w , `topic` t WHERE LOCATE(t.topic_id, w.topic_list) and t.topic_id in (SELECT topic_id FROM topic)

1 个答案:

答案 0 :(得分:0)

不要在单元格中放置多个值。为许多人构建一个单独的表:许多映射。

如果您必须使用正则表达式,请参阅RLIKE '[[:<:]]340[[:>:]]'