日期:2014-05-16  浏览次数:20388 次

想要实现这样的读取数据库的功能,如何做
本帖最后由 bnhxy 于 2014-01-07 20:49:05 编辑
比如说我有两个表
表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)