比如说我有两个表
表game有列gameid,gamename
里面有数据
1. gameid=1, gamename=a
2. gameid=2, gamename=b
3. gameid=3, gamename=c
表news里有newsid,news_title,gameid
里面有数据
1. newsid=1, news_title=abc, gameid=1
2. newsid=2, news_title=def, gameid=1|2
3. newsid=3, news_title=ghi, gameid=1|2|3
最后想输出所有关于gamename=b的news_title
除了用like,还有什么别的好方法可以输出,或是要如何建表能实现相应的效果?
------解决方案--------------------
select n.news_title from game g ,news n where g.gamename=b and instr(n.gameid,g.gameid)>0
------解决方案--------------------
select game.gameid, news.news_title from game, news
where game.gamename = 'b' and find_in_set(game.gameid, replace(news.gameid,'
------解决方案--------------------
', ','))
如果 news.gameid 不是 1
------解决方案--------------------
2
------解决方案--------------------
3 这样的格式,而是 1,2,3 这样的格式就更理想了
------解决方案--------------------
select game.gameid, news.news_title from game, news
where game.gamename = 'b' and find_in_set(game.gameid, news.gameid)