проблема в отображении правильной конкатенации mysql - PullRequest
0 голосов
/ 21 сентября 2010

У меня есть две таблицы 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,'-%'))

, тогда output будет показывать истории с идентификатором темы: 8, 4,14

вы видите, что он считает идентификатор темы 4 такой же, как 14

, пожалуйста, учтите, что я не могу изменить структуру таблицы mysql ия должен найти решение этой проблемы

Ответы [ 2 ]

2 голосов
/ 21 сентября 2010

Используйте комбинацию функций FIND_IN_SET и REPLACE :

LEFT JOIN table_topics AS nto ON FIND_IN_SET(nto.topicid, REPLACE(ns.associated, '-', ','))
0 голосов
/ 21 сентября 2010

Я бы сделал следующее: Split, связанный с '-', проверил, является ли идентификатор темы В результирующем массиве.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...