【问题标题】:Fetch Mysql data order according to in Array [duplicate]根据数组中的获取Mysql数据顺序[重复]
【发布时间】:2015-10-09 11:45:31
【问题描述】:

假设;

表名:用户

╔═══╦══════╦════╗
║ id║ name ║ age║
╠═══╬══════╬════╣
║ 5 ║ a    ║ 25 ║
║ 8 ║ b    ║ 12 ║
║ 10║ c    ║ 13 ║
║ 12║ d    ║ 16 ║
║ 14║ e    ║ 21 ║
╚═══╩══════╩════╝

查询:

SELECT * 
FROM user 
WHERE id IN (12,4,14,5,10);

现在问题是数据来自 ASC,但我想按照 (12,4,14,5,10) 的顺序获取数据。 任何解决方案。

【问题讨论】:

  • 你试过不使用ASC命令吗??
  • 该订单代表什么?您是否尝试以年龄升序或姓名升序或其他方式获取数据?还是随机的?

标签: php mysql sql database


【解决方案1】:

使用field():

SELECT *
FROM user
WHERE id IN (12, 4, 14, 5, 10)
ORDER BY field(id, 12, 4, 14, 5, 10);

【讨论】:

  • 我认为他们太忙了,无法正确检查答案。 ;)
【解决方案2】:

您可以使用Field() 运算符。返回 str1, str2, str3, ... 列表中 str 的索引(位置)。如果未找到 str,则返回 0。

WHERE id IN([ids any order])
ORDER BY FIELD(id, [ids in order])

【讨论】:

    猜你喜欢
    • 2021-08-09
    • 1970-01-01
    • 2020-02-18
    • 1970-01-01
    • 2020-02-16
    • 1970-01-01
    • 1970-01-01
    • 2014-05-04
    • 1970-01-01
    相关资源
    最近更新 更多