MySQL循环执行使用递增变量的查询

时间:2015-11-03 21:31:12

标签: mysql sql

我有一个在where子句中使用变量的查询:

SET @id = 1;

SELECT  
    id,
    value
FROM myTable
WHERE id = @id;

我想运行@id值1到100的查询,然后将所有循环结果联合(或以某种方式组合)到一个结果集中。这在MySQL中是否可行,如果是,那么什么是好方法?

2 个答案:

答案 0 :(得分:1)

为什么要使用变量呢?只需使用简单的where子句:

select id, value
from myTable
where id between 1 and 100;

相反,如果您真的希望按行标识前100行,请使用order bylimit

select id, value
from myTable
order by id
limit 100;

答案 1 :(得分:0)

只需使用子查询来获取变量。

where放在外面

SELECT *
FROM 
    (
    SELECT  
        @rownumber := if(@rownumber, @rownumber + 1, @rownumber + 1)  AS id,
        value
    FROM myTable
    CROSS JOIN (select @rownumber := 0) r
    ) as T
WHERE id < 100;