需要这些有序的结果:在(3,7,1,5)中

huangapple go评论52阅读模式
英文:

in(3,7,1,5) need this order wise result

问题

以下是您的查询和您期望的结果:

SELECT * FROM `rsoft_module_fields` WHERE id in (3,7,1,5);

期望结果:

  1. id 3 应该在第1行,
  2. id 7 应该在第2行,
  3. id 1 应该在第3行,
  4. id 5 应该在第4行

您还提供了一个参考截图。

英文:
SELECT * FROM `rsoft_module_fields` WHERE id in (3,7,1,5);

this is my query but the result show like id's orderwise, but I need the order as What I given in in condition.

am expected result is given below
id 3 should be in 1 st row,
id 7 should be in 2 nd row,
id 1 should be in 3 rd row,
id 5 should be in 4 th row

and screenshot also attached for reference需要这些有序的结果:在(3,7,1,5)中

答案1

得分: 1

从 `rsoft_module_fields` 表中选择 t1.* 
与 (SELECT 3 id, 1 sorting_order UNION  ALL
      SELECT 7, 2 UNION ALL
      SELECT 1, 3 UNION ALL
      SELECT 5, 4) t2 使用 (id) 连接
按照 t2.sorting_order 排序

或者:

从 `rsoft_module_fields` 表中选择 * 
其中 id 在 (3,7,1,5) 中
按照 FIND_IN_SET(id, '3,7,1,5') 排序;
英文:
SELECT t1.* 
FROM `rsoft_module_fields` t1
JOIN (SELECT 3 id, 1 sorting_order UNION  ALL
      SELECT 7, 2 UNION ALL
      SELECT 1, 3 UNION ALL
      SELECT 5, 4) t2 USING (id)
ORDER BY t2.sorting_order 

Alternatively:

SELECT * 
FROM `rsoft_module_fields` 
WHERE id in (3,7,1,5)
ORDER BY FIND_IN_SET(id, '3,7,1,5');

</details>



huangapple
  • 本文由 发表于 2023年4月17日 19:09:32
  • 转载请务必保留本文链接:https://go.coder-hub.com/76034512.html
  • mysql

如何将MySQL表列作为变量放入 :?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定