我想使用PDO的fetchAll()
方法和\PDO::FETCH_GROUP
選項。使用PDO提取按特定列分組的所有行並選擇所有列
但是,\PDO::FETCH_GROUP
使用第一列作爲鍵來對結果進行分組。查詢我有選擇的所有領域,如:
SELECT * FROM `my_table`;
表my_table
有相當多的領域,這是非常有可能在未來增加新的領域。我不喜歡這個想法逐個指定查詢中的所有字段。
表看起來像這樣:
| my_table |
+----------+
| id |
| type |
| a_field |
| b_field |
| ... |
是否有可能由type
場使用SELECT * FROM my_table
和組嗎?
我試過下面的查詢,但它引發了異常:
$sql = "SELECT type, * FROM my_table";
$result = $pdo->query($sql)->fetchAll(\PDO::FETCH_GROUP);
例外:
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
*什麼*拋出的異常?好吧,你不用費心閱讀它說的內容,但是你至少可以在這裏發佈它,讓其他人知道發生了什麼問題? –
對不起,我添加了這個異常。當然,我沒有讀過異常,我認爲查詢不是使用'type,*'的有效SQL。 –