订阅本站

使用or:

WHERE * FROM article
WHERE article_category=2
OR article_category=3
ORDER BY article_id DESC
LIMIT 5
// 执行时间:11.0777

使用in:

SELECT * FROM article
WHERE article_category IN (2,3)
ORDER BY article_id DESC
LIMIT 5
// 执行时间:11.2850

使用union all:

(
    SELECT * FROM article
    WHERE article_category=2
    ORDER BY article_id DESC
    LIMIT 5
) UNION ALL (
    SELECT * FROM article
    WHERE article_category=3
    ORDER BY article_id DESC
    LIMIT 5
)
ORDER BY article_id DESC
LIMIT 5
// 执行时间:0.0261

原文地址:http://laiguowei2004.blog.163.com/blog/static/368290002011716111921116/

MySQL查询按IN顺序输出结果

huangdijia 发表于 2011-8-12 分类 MySQL数据库技术 | 发表评论

如果使用in查询的话,输出的结果是重新排序的,而不按输入的id顺序输出的

1、可以使用FIND_IN_SET建立一个排序列

2、自己构建一个顺序id表,左连接IN查询结果集

3、使用UNION