我试图了解以下复杂的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
任何帮助都会很棒!
答案 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;
这里5
是offset
,而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
(我想...我已经有一段时间没有使用过类似的东西了,所以我会得到纠正)