我有这个问题:
SELECT *
FROM Orders
WHERE site_code = "TT" AND delete_flag = 'n'
LIMIT 10 OFFSET 5;
问题是结果不准确。我得到的结果是" site_code"不是" TT"。我的问题是,是否可以将OFFSET与WHERE条件一起使用?
答案 0 :(得分:0)
表中的行没有已定义的顺序。使用LIMIT x
时,服务器将准确返回x
个匹配的行,但哪些 x
行未定义。对于OFFSET y
,返回的第一行将从第一行偏移y
,否则可能会返回,但是 - 在SQL中有或没有指定的OFFSET
,没有定义“第一排。
行是无序集合,因此除非还指定了ORDER BY
,否则将返回特定行。
唯一的限制是,将返回x
行(如果存在许多匹配的行)并且它们将匹配WHERE
- 但哪些行返回的基本上是优化器首先找到的任何行,使用它选择的任何条件来匹配选择标准的行。
答案 1 :(得分:0)
您将不得不以这种方式使用 示例:
选择 员工编号,名字,姓氏,薪水 从 雇员 哪里 薪水=(SELECT DISTINCT 薪水 从 雇员 按工资DESC排序 LIMIT 1,1);