带有WHERE子句条件的MySQL OFFSET不起作用

时间:2016-09-21 02:20:33

标签: mysql sql

我有这个问题:

SELECT *
FROM Orders
WHERE site_code = "TT" AND delete_flag = 'n'
LIMIT 10 OFFSET 5;

问题是结果不准确。我得到的结果是" site_code"不是" TT"。我的问题是,是否可以将OFFSET与WHERE条件一起使用?

2 个答案:

答案 0 :(得分:0)

表中的行没有已定义的顺序。使用LIMIT x时,服务器将准确返回x个匹配的行,但哪些 x行未定义。对于OFFSET y,返回的第一行将从第一行偏移y,否则可能会返回,但是 - 在SQL中有或没有指定的OFFSET,没有定义“第一排。

行是无序集合,因此除非还指定了ORDER BY,否则将返回特定行。

唯一的限制是,将返回x行(如果存在许多匹配的行)并且它们将匹配WHERE - 但哪些行返回的基本上是优化器首先找到的任何行,使用它选择的任何条件来匹配选择标准的行。

答案 1 :(得分:0)

您将不得不以这种方式使用 示例:

选择 员工编号,名字,姓氏,薪水 从 雇员 哪里 薪水=(SELECT DISTINCT 薪水 从 雇员 按工资DESC排序 LIMIT 1,1);