MySQL用户变量添加:' + 1'返回' + 2'

时间:2015-02-22 11:49:16

标签: mysql

我正在编写一个名为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个小时..

1 个答案:

答案 0 :(得分:0)

您正在将link_movie_id递增1,但您正在按link_movie_id和link_id进行分组。有了这个效果,对于某些link_movie_id,结果中有多个link_id值。如果您想获得所需内容,可以按单个字段分组,也可以根据link_movie_id和link_id的串联组合进行增量。