“WHERE字段IN”SQL查询的顺序?

前端之家收集整理的这篇文章主要介绍了“WHERE字段IN”SQL查询的顺序?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_404_1@我使用以下sqlMySQL数据库中选择记录:

@H_404_1@

SELECT * FROM cms_product WHERE id IN (3,22,1);
@H_404_1@结果顺序等于“ORDER BY id ASC”,因此在示例中返回记录1,3,22.如何以IN子句中输入的确切方式对它们进行排序?订购为3,1?谢谢.
最佳答案
众多选择 –

@H_404_1@案件:

@H_404_1@首选,是ANSI-92,它可以移植到其他数据库.

@H_404_1@

  SELECT * 
    FROM cms_product 
   WHERE id IN (3,1)
ORDER BY CASE id
           WHEN 3 THEN 1
           WHEN 22 THEN 2
           WHEN 1 THEN 3
         END
@H_404_1@FIND_IN_SET:

@H_404_1@

  SELECT * 
    FROM cms_product 
   WHERE id IN (3,1)
ORDER BY FIND_IN_SET(id,'3,1');
@H_404_1@领域:

@H_404_1@

  SELECT * 
    FROM cms_product 
   WHERE id IN (3,1)
ORDER BY FIELD(id,1);
@H_404_1@参考:

@H_404_1@> CASE
> FIELD
> FIND_IN_SET

猜你在找的MySQL相关文章