开发者

MySql SELECT AS - Append all field names

I'd like to do something like this:

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

... and have the prefix added dynamically to all field names rather than selecting them all manually (ie SELECT table.* AS prefix_* or something)

Hopefully I've described开发者_开发问答 that accurately. Any thoughts?

Edit

To be clear, the reason I'm asking is to make sure that my query result contains every column from each table I call even if there are duplicate field names. For example, I might have a table with lots of fields which means I don't want to alias all the fields manually. Further if 3 tables have a field called name my result won't contain three name results; it will have one. I want to avoid ambiguity with my column names.


To avoid ambiguity in columns with multiple tables it appears you must manually specify each column name that exists with the same name in more than one table.

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


When you reference the results, you can reference each column by the tablename.column . Therefore you have a default prefix that is appended to each column name.

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


In mysqli you can use the php function

mysqli_fetch_fields()

for fieldinformations - so you get the tablename of each collumn

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜