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 |
+----------+
我有一个 运行 查询,它通过属于拖放菜单布局构建器的另一个数据库调用指定的 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 |
+----------+