开发者

MYSQL IN or multiple conditionals

I have a simple query which is returning records based on the field status not having certain values. Lets say for arguments sake that the field can have values 1,2,3...10 and I want to return all records that don't have values 3, 7 and 9. Which of the following would be best to use?

Option 1.

SELECT `id` FROM `tbl` WHERE (`status` != '3' AND `status` != '7' AND `_status` != '9')开发者_如何学C

Option 2.

SELECT `id` FROM `tbl` WHERE `status` NOT IN ('3','7','9');

Thanks for you help.


I suspect the optimiser would reduce both queries to the same thing, and if that is true I prefer the second option, as it's shorter and thus easier to parse.

You should try running EXPLAIN on each query with real data to confirm.


Best way to optimize your Query using EXPLAIN Command for Example

EXPLAIN SELECT id FROM tbl WHERE status NOT IN ('3','7','9'); and see the execution time

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜