为了账号安全,请及时绑定邮箱和手机立即绑定

按特定顺序选择特定行

按特定顺序选择特定行

PHP
慕斯王 2023-04-21 13:24:32
我有一个脚本(在 PHP 中),它通过一系列不同的比较来生成表中按行 ID 排序的条目数组。然后我将数组内爆成一个字符串并使用 WHERE 选择那些特定的行,但是我不知道如何按照它们在数组中的相同顺序对它们进行排序。$order_array = [50,49,42,52,53,54,51,48,47]$order_string = implode(',', $order_array);// echo $order_string returns '50,49,42,52,53,54,51,48,47'$sql_todo = "SELECT * FROM todo_list WHERE id IN ({$order_string})";    if ($result_todo = mysqli_query($link, $sql_todo)) {        while ($row_todo = mysqli_fetch_assoc($result_todo)) {这成功地选择了所需的行,但它们与数组的顺序不同。我知道我没有告诉它以这种方式订购它们(所以它没有),但我不知道如何实现它。谢谢你的时间,
查看完整描述

1 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

您可以使用以下field()功能:

"SELECT * FROM todo_list WHERE id IN ({$order_string}) ORDER BY FIELD(id, {$order_string})"

field()返回其第一个参数在列表中的索引,您可以直接将其用于排序。

旁注:您可能应该使用准备好的语句而不是在查询字符串中连接值(如果您的值来自代码外部,这是必须的)。


查看完整回答
反对 回复 2023-04-21
  • 1 回答
  • 0 关注
  • 81 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信