我只想知道IN在SQL查询中是如何工作的?
假设我有代码
select * from myTable WHERE id IN (5,9,2,4,6,3);
这是否相当于
select * from myTable WHERE id = 5;
select * from myTable WHERE id = 9;
select * from myTable WHERE id = 2;
select * from myTable WHERE id = 4;
select * from myTable WHERE id = 6;
select * from myTable WHERE id = 3;
或
秩序是随机的?
编辑1
这里的顺序并不意味着我指的是前5,然后9,然后2等等**
或
随机序是指前4,然后3,2,以此类推.
请让我知道。
发布于 2012-11-19 09:20:58
发布于 2012-11-19 09:16:34
顺序是随机的(技术上不是随机的,但你不能可靠地预测它)。您发布的查询相当于:
SELECT * FROM myTable WHERE id = 5 OR id = 9 OR id = 2 OR id = 4 OR id = 6 OR id = 3
如果您想要一个特定的订单,您需要使用一个ORDER BY
子句。对于IN
规范中的值使用什么顺序并不重要。
发布于 2012-11-19 09:20:12
不是的。你需要说得更具体些。当您在单独的查询中查询id时,答案是否。如果需要订单,则需要添加orderby子句。同样,相等运算符总是随机的,因此,当您混合IN运算符时,等于where子句中的顺序是很重要的。
https://stackoverflow.com/questions/13458808
复制相似问题