mysql中的内部join-where-order-by限制

时间:2013-09-19 06:26:33

标签: mysql

当我使用 limit 0,50 执行mysql查询时。我有50行。

SELECT md.*,cl.country_name FROM master_detail md
INNER JOIN country_list cl on cl.country_value=md.Partner_value
where md.for_country_value='577' order by md.id LIMIT 0,50

但当我用限制50,100 执行mysql查询时。我有100行。

SELECT md.*,cl.country_name FROM master_detail md
INNER JOIN country_list cl on cl.country_value=md.Partner_value
where md.for_country_value='577' order by md.id LIMIT 50,100

实际上我想要基于限制的数据? 什么会先执行或限制或按顺序执行?

3 个答案:

答案 0 :(得分:3)

LIMIT中的第一个参数是应该开始获取记录的位置,第二个参数是多少。所以50,100:从第50行开始,获得100条记录。

LIMIT

答案 1 :(得分:1)

limit 50,100  

可以重写为

limit 100 offset 50

表示在limit子句中,第一个参数是偏移量,第二个参数是实际限制值。

答案 2 :(得分:1)

你没有做你期望的事。如果需要获取50条记录,则不应更改第二个参数。让它为50.每次更改第一个参数。它讲述了起点。

SELECT 
    md.*,
    cl.country_name 
FROM master_detail md
INNER JOIN country_list cl 
    on cl.country_value=md.Partner_value
WHERE md.for_country_value='577' 
ORDER BY md.id LIMIT 50,50