使用*标记列

时间:2015-10-12 22:58:03

标签: php mysql

是否可以使用带有前缀的SELECT *指定列名。这很难解释,所以看看这个例子。

$connect->prepare("
SELECT 
     user.firstName as prefix_firstName,
     user.lastName as prefix_lastName
   FROM user
WHERE user.ID = '5'
    ");

我希望能够使用的是user.*并使用*将前缀指定为prefix_。像这样:

SELECT 
   user.* as prefix_*

它会将每个列分配给prefix_,如prefix_firstName,而不必调用每个列并为其分配as prefix_columnName。像:

SELECT
  user.firstName as prefix_firstName,
  user.lastName as prefix_lastName

我希望这个解释得很好。

更新 谢谢..原因是,我有3个人,我需要从同一张桌子拉。使用

SELECT user.*,
       admin.*,
       creator.*
FROM 
     user
LEFT JOIN
     user as admin
ON
     admin.ID = user.adminID
LEFT JOIN
     user as creator
ON
     creator.ID = user.creatorID
WHERE
     user.ID = '5'

作为示例,所有3个选择(user.*admin.*creator.*)都将创建相同的firstName变量,该变量将覆盖iteself。我想也许有一种比这样做更短的方式。

SELECT
    user.firstName,
    user.lastName,
    admin.firstName as admin_firstName,
    admin.lastName as admin_lastName,
    creator.firstName as creator_firstName,
    creator.lastName as creator_lastName
FROM 
     user
LEFT JOIN
     user as admin
ON
     admin.ID = user.adminID
LEFT JOIN
     user as creator
ON
     creator.ID = user.creatorID
WHERE
     user.ID = '5'

这只是一个片段,用户表中实际上有37列需要为3个用户中的每一个提取。

谢谢!

1 个答案:

答案 0 :(得分:0)

不,使用sql是不可能的。如果查询是在php代码中动态汇编的,那么php代码可以将查询构建为字符串,以便用别名单独包含每个字段。