gpt4 book ai didi

php - 使用 PDO 获取按特定列分组的所有行并选择所有列

转载 作者:行者123 更新时间:2023-11-29 06:07:40 24 4
gpt4 key购买 nike

我想使用 PDO 的 fetchAll() 方法和 \PDO::FETCH_GROUP 选项。

但是 \PDO::FETCH_GROUP 使用第一列作为对结果进行分组的键。我的查询选择了所有字段,例如:

SELECT * FROM `my_table`;

my_table 表有很多字段,将来很可能会添加新的字段。我不喜欢在查询中一一指定所有字段的想法。

表格看起来像这样:

| my_table |
+----------+
| id |
| type |
| a_field |
| b_field |
| ... |

是否有可能使用 SELECT * FROM my_table 并按 type 字段分组?

我尝试了以下查询,但它引发了异常:

$sql = "SELECT type, * FROM my_table";
$result = $pdo->query($sql)->fetchAll(\PDO::FETCH_GROUP);

异常(exception):

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '* FROM my_table WHERE type IN ('typeA', 'typeB', 'typeC')' at line 1' in MyClass.php on line XXX

最佳答案

只需在表名前加上星号:

$sql = "SELECT type, my_table.* FROM my_table";
$result = $pdo->query($sql)->fetchAll(\PDO::FETCH_GROUP);

关于php - 使用 PDO 获取按特定列分组的所有行并选择所有列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40397344/

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