MySql SELECT AS - добавьте все имена полей

Я хотел бы сделать что-то вроде этого:

SELECT table.id AS prefix_id, table.name AS prefix_name

... и добавьте префикс динамически для всех имен полей, а не для их выбора вручную (т.е. SELECT table.* AS prefix_* или что-то еще)

Надеюсь, я точно это описал. Любые мысли?

Edit

Чтобы быть ясным, причина, по которой я прошу, состоит в том, чтобы убедиться, что мой результат запроса содержит каждый столбец из каждой таблицы, которую я вызываю, даже если есть повторяющиеся имена полей. Например, у меня может быть таблица с большим количеством полей, что означает, что я не хочу, чтобы псевдоним всех полей вручную. Далее, если 3 таблицы имеют поле под названием name, мой результат не будет содержать три результата name; у него будет один. Я хочу избежать двусмысленности с именами столбцов.

Ответ 1

Чтобы избежать двусмысленности в столбцах с несколькими таблицами, вы должны вручную указать каждое имя столбца, которое существует с тем же именем в нескольких таблицах.

http://dev.mysql.com/doc/refman/5.0/en/identifier-qualifiers.html

Ответ 2

Когда вы ссылаетесь на результаты, вы можете ссылаться на каждый столбец по имени tablename.column. Поэтому у вас есть префикс по умолчанию, который добавляется к каждому имени столбца.

SELECT table.id,table.name,other.name FROM table,other Where other.name = table.name;

Ответ 3

Я могу представить ситуацию, когда это может быть полезно, если у вас есть несколько моделей данных в списке, который нужно заполнить из одного SQL-запроса.

Должно быть возможно использовать DESCRIBE или SHOW COLUMNS в этих таблицах перед запросом SELECT. Таким образом, вы знаете все имена полей для каждой таблицы. Это не помогает с любыми потенциальными конфликтами имени поля.

Я не буду комментировать, если это хорошая идея или нет. Каждый разработчик должен решить, где провести линию между гибкостью, лень и хорошей практикой.

Ответ 4

В mysqli вы можете использовать функцию php

mysqli_fetch_fields()

для fieldinformations - так что вы получите имя_таблицы каждой колонки