我对单个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)
答案 0 :(得分:0)
不要在单元格中放置多个值。为许多人构建一个单独的表:许多映射。
如果您必须使用正则表达式,请参阅RLIKE '[[:<:]]340[[:>:]]'
。