显示正确的mysql连接问题

时间:2010-09-21 04:20:35

标签: php mysql concatenation

我有两个链接在一起的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表结构,我应该找到解决此问题的方法

2 个答案:

答案 0 :(得分:2)

使用FIND_IN_SETREPLACE函数的组合:

LEFT JOIN table_topics AS nto ON FIND_IN_SET(nto.topicid, REPLACE(ns.associated, '-', ','))

答案 1 :(得分:0)

我会做以下事情: 拆分与“ - ”关联,检查主题ID是否为结果数组。