我正在编写一个名为Movieovo的电影搜索引擎,我想从每个组(电影标题)中选择前5行(电影链接),但我在这个SQL查询中遇到了一个问题:
SELECT link_movie_id, link_id,
@num := if(@link_movie_id = link_movie_id, @num + 1, 1) as row_number,
@link_movie_id := link_movie_id as dummy
FROM link GROUP BY link_movie_id, link_id HAVING row_number <= 5 LIMIT 30
结果:(字符过多,因此我上传为图片) http://i.imgur.com/phFzUF1.png
你可以看到&#34; row_number&#34;每次都不+1,
我直接尝试在MySQL命令行中向我显示相同的结果,任何人都可以帮助我吗?我已经在这个问题上浪费了5个小时..答案 0 :(得分:0)
您正在将link_movie_id递增1,但您正在按link_movie_id和link_id进行分组。有了这个效果,对于某些link_movie_id,结果中有多个link_id值。如果您想获得所需内容,可以按单个字段分组,也可以根据link_movie_id和link_id的串联组合进行增量。