Mysql 如何使用“LIKE”并保持连接值

Mysql 如何使用“LIKE”并保持连接值,mysql,sql,join,Mysql,Sql,Join,我有三张桌子: Category +-------------+----------+ | category_id | name | +-------------+----------+ | 1 | Business | +-------------+----------+ | 2 | Sport | +-------------+----------+ | 3 | Games | +-------------+--

我有三张桌子:

Category +-------------+----------+ | category_id | name | +-------------+----------+ | 1 | Business | +-------------+----------+ | 2 | Sport | +-------------+----------+ | 3 | Games | +-------------+----------+ 问题是当我使用此选项时:

选择*,GROUP_CONCATcat.name FROM news n JOIN CatNews c ON n.id=c.newsid JOIN category cat ON c.cat_id=cat.category_id和cat.name,如“%Games%”按n.id分组

这让我想起:

我如何使用LIKE查找事件,但保留GROUP_CONCAT的值


我想保留[Sport,Games]

我想您希望返回包含游戏的新闻项目。如果是,这是正确的逻辑:

SELECT n.*, GROUP_CONCAT(c.name)
FROM news n JOIN
     CatNews cn
     ON n.id = cn.newsid JOIN
     category c ON cn.cat_id = c.category_id
GROUP BY n.id
HAVING SUM(category_id = 'Games') > 0;
使用SELECT*。。。按n.id分组是错误的SQL。 CatNews +---------+--------+ | news_id | cat_id | +---------+--------+ | 1 | 1 | +---------+--------+ | 2 | 3 | +---------+--------+ | 2 | 2 | +---------+--------+ id | title | news_id | cat_id | name | GROUP_CONCAT(cat.name) 2 | Electric flying cars | 2 | 3 | Sport | Sport, Games id | title | news_id | cat_id | name | GROUP_CONCAT(cat.name) 2 | Electric flying cars | 2 | 3 | Games | Games
SELECT n.*, GROUP_CONCAT(c.name)
FROM news n JOIN
     CatNews cn
     ON n.id = cn.newsid JOIN
     category c ON cn.cat_id = c.category_id
GROUP BY n.id
HAVING SUM(category_id = 'Games') > 0;