gpt4 book ai didi

php - sql 查询顺序似乎不起作用

转载 作者:行者123 更新时间:2023-12-04 06:05:15 27 4
gpt4 key购买 nike

我有这个表结构,

| id | name | level |
---------------------
| 1 | a | 1 |
| 2 | b | 2 |
| 3 | c | 3 |
| 5 | d | 4 |
| 6 | e | 1 |
| 7 | f | 2 |
| 8 | g | 1 |
| 9 | g | 4 |

我想将我的提取结果排序,所以我执行这个查询:
$sql = "SELECT * FROM section_tb WHERE id = ? ORDER BY level";
$stmt = $db->prepare($sql);
$stmt->execute(array($id));
$result = $stmt->fetch(PDO::FETCH_ASSOC);

然而当我 print_r($result)订单似乎是按 id 排序的。我很困惑为什么。

我的数据库详细信息:
id - PRIMARY, AUTO INCREMENT
name - UNIQUE
INNODB

最佳答案

您的查询排序正确。

这是无关紧要的,因为无论如何它每次调用时都只返回一行。

您的 foreach 多次调用它,并且排序只影响实际的数据库调用。因此,结果的整体顺序就是那个 foreach 的顺序。

如果 foreach 传递了一个标识多行的参数,那么在这些调用中的每一个中,顺序将按级别(例如,如果您进行了匹配名称的查询,则匹配“g”的两个将在要求的订单)。

您想将查询更改为类似 SELECT * FROM section_tb WHERE id in (1,2,3,4,5,6,7,8,9) ORDER BY level 的内容。 (或者可能只是 SELECT * FROM section_tb ORDER BY level ),调用一次,然后遍历结果。

关于php - sql 查询顺序似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8437795/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com