Я хочу использовать метод PDO fetchAll()
с опцией \PDO::FETCH_GROUP
.Извлеките все строки, сгруппированные по определенному столбцу, используя PDO и выбрав все столбцы
Однако \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);
Исключение:
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 с использованием 'type, *'. –