代码之家  ›  专栏  ›  技术社区  ›  jay

mysql select as-附加所有字段名

  •  14
  • jay  · 技术社区  · 14 年前

    我想这样做:

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

    …并将前缀动态添加到所有字段名中,而不是手动选择所有字段名(即 SELECT table.* AS prefix_* 或某物)

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

    编辑

    很明显,我要求的原因是确保我的查询结果包含 每一个 我调用的每个表中的列,即使有重复的字段名。例如,我可能有一个包含很多字段的表,这意味着我不想手动对所有字段进行别名。另外,如果3个表有一个名为 name 我的结果不包含三个 名称 结果;它将有一个。 我想避免模棱两可 用我的列名。

    4 回复  |  直到 10 年前
        1
  •  4
  •   jay    14 年前

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

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

        2
  •  0
  •   Milhous    14 年前

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

    SELECT table.id,table.name,other.name FROM table,other Where other.name = table.name;
    
        3
  •  0
  •   Andrioid    14 年前

    我可以想象这样一种情况:如果列表中有多个数据模型需要从单个SQL查询中填充,那么这种情况会很有用。

    应该可以使用 描述 显示栏 在那些桌子上 选择 查询。这样,您就知道每个表的所有字段名。但这对任何潜在的字段名冲突都没有帮助。

    我不想评论这是不是个好主意。每个开发人员必须决定在灵活性、懒惰性和良好实践之间划一条界线。

        4
  •  0
  •   Chaendler    10 年前

    在mysqli中,可以使用php函数

    mysqli_fetch_fields()。

    对于fieldinformations-所以您可以得到每个列的表名