MySql SELECT AS - 附加所有字段名称

时间:2010-04-07 18:52:34

标签: mysql

我想做这样的事情:

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

...并将前缀动态添加到所有字段名称,而不是手动选择它们(即SELECT table.* AS prefix_*或其他内容)

希望我已经准确地描述了这一点。有什么想法吗?

修改

要清楚,我要问的原因是确保我的查询结果包含我调用的每个表中的每个列,即使存在重复的字段名称。例如,我可能有一个包含大量字段的表,这意味着我不想手动为所有字段设置别名。此外,如果3个表格中有一个名为name的字段,我的结果将不会包含三个name个结果;它会有一个。 我想避免含糊不清我的列名。

4 个答案:

答案 0 :(得分:4)

为了避免在具有多个表的列中出现歧义,您必须手动指定在多个表中具有相同名称的每个列名。

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

答案 1 :(得分:0)

引用结果时,可以通过tablename.column引用每一列。因此,您有一个附加到每个列名称的默认前缀。

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

答案 2 :(得分:0)

我可以想象,如果列表中有多个数据模型需要从单个SQL查询填充,这可能会很有用。

SELECT 查询之前,应该可以在这些表上使用 DESCRIBE SHOW COLUMNS 。这样,您就知道每个表的所有字段名称。但这对任何潜在的字段名称冲突都无济于事。

我不打算评论这是不是一个好主意。每个开发人员必须决定在灵活性,懒惰和良好实践之间划清界限。

答案 3 :(得分:0)

在mysqli中你可以使用php函数

  

mysqli_fetch_fields()

用于fieldinformations - 所以你得到每个collumn的表名