MySQL限制

时间:2018-11-02 21:34:59

标签: mysql

我试图了解以下复杂的MYSQL过程的片段,其中var1,var2,var3和var4被声明为变量:

select col1, col2, col3, col4
from table
order by col1 limit 5, 1 into var1, var2, var3, var4;

尤其是,我不知道以上内容将插入var1,var2,var3和var4中。

更一般而言,我不了解MYSQL中的以下内容:

select...limit ..., 1 into

任何帮助都会很棒!

2 个答案:

答案 0 :(得分:2)

让我们剖析查询。

select col1, col2, col3, col4 from table;

这将为您提供表中的所有行,但只有4列。

select col1, col2, col3, col4 from table order by col1;

现在,您要按col1的升序对结果进行排序。

select col1, col2, col3, col4 from table order by col1 limit 5, 1;

这里5offset,而1是实际的limit,这会将您的结果集缩小为1。

offset是什么意思?

假设您从第二个查询中获得10个结果。然后,第三个查询将为您提供从第6行开始的结果,并受所传递的限制(在本例中为1)进行限制。因此,您只会得到一行包含四个值的结果。

into的作用是什么?

它只是将这4个结果的值存储到这4个变量中。

答案 1 :(得分:1)

因此LIMIT可以采用两个参数LIMIT偏移量,计数

offset是要返回的第一行的偏移量(例如,第1行的偏移量将为0)

count是您要返回的最大行数

如果仅将其传递给一个参数,则这只是一个计数,因此LIMIT 5将返回表中的前5行。

所以您的查询返回第6行中的col1,col2,col3和col4的4个值,然后将这些值返回到var1,var2,var3,var4

(我想...我已经有一段时间没有使用过类似的东西了,所以我会得到纠正)