ORDER BY FIELD 未按指定的 ID 编号排序

ORDER BY FIELD Not Ordering by id number specified

我有一个 运行 查询,它通过属于拖放菜单布局构建器的另一个数据库调用指定的 id 选择行。

我无法让字段排序正常工作。

要么我做错了,要么我刚刚理解了 ORDER BY FIELD() sql 查询。

这里是查询:

$databasemenustring = '2,3,1,4';
$datamenu = $pdo->query("SELECT id, name, title, slug FROM pages WHERE id IN({$databasemenustring2}) AND islive=1 ORDER BY FIELD('id', {$databasemenustring})");

目前只是按id desc排序

谢谢:)

Change ORDER BY FIELD('id',

ORDER BY FIELD(id,

这是一个示例,当将字段名作为字符串文字传递时,它不会保留指定的顺序

mysql> select idfields from fields where idfields in (132,124,130,125) order by field('idfields',132,124,130,125);
+----------+
| idfields |
+----------+
|      124 |
|      125 |
|      130 |
|      132 |
+----------+

mysql> select idfields from fields where idfields in (132,124,130,125) order by field(idfields,132,124,130,125);
+----------+
| idfields |
+----------+
|      132 |
|      124 |
|      130 |
|      125 |
+----------+