我有两个链接在一起的mysql表,我需要显示我的类别列表
table_stories
sid || title || time || hometext || associated
1 || test || 2010-07-19 || text---- || 8-14-
table_topics
topicid || topicname || slug
1 || car || car
4 || wall || wall
8 || benz || benz
14 || ford || ford
现在,如果我使用此查询来获取故事列表:
LEFT JOIN table_topics AS nto ON
(CONCAT(' ',COALESCE(ns.associated,'-'),'-') LIKE CONCAT('%',nto.topicid,'-%'))
然后输出会显示包含主题ID的故事: 8,4,1
您认为主题ID 4 与 14
相似请说明我无法更改mysql表结构,我应该找到解决此问题的方法
答案 0 :(得分:2)
使用FIND_IN_SET和REPLACE函数的组合:
LEFT JOIN table_topics AS nto ON FIND_IN_SET(nto.topicid, REPLACE(ns.associated, '-', ','))
答案 1 :(得分:0)
我会做以下事情: 拆分与“ - ”关联,检查主题ID是否为结果数组。