gpt4 book ai didi

sql - "WHERE field IN"SQL 查询的顺序?

转载 作者:可可西里 更新时间:2023-11-01 06:57:08 25 4
gpt4 key购买 nike

我正在使用以下 SQL 从 MySQL 数据库中选择记录:

SELECT * FROM cms_product WHERE id IN (3,22,1);

结果顺序等于“ORDER BY id ASC”,因此返回示例记录 1、3、22。我怎样才能让它们按照 IN 子句中输入的方式进行排序?所以命令为 3,22,1 ?谢谢你。

最佳答案

许多选项 -

案例:

首选,作为 ANSI-92,它可以移植到其他数据库。

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

FIND_IN_SET:

  SELECT * 
FROM cms_product
WHERE id IN (3,22,1)
ORDER BY FIND_IN_SET(id, '3,22,1');

领域:

  SELECT * 
FROM cms_product
WHERE id IN (3,22,1)
ORDER BY FIELD(id, 3, 22, 1);

引用:

关于sql - "WHERE field IN"SQL 查询的顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4011056/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com