是否可以使用带有前缀的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_firstName这样的prefix_,而不必调用每一列并为其分配一个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变量,该变量将覆盖自身。我想也许有一种比这样做更短的方法。
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'这只是一个片段,实际上user表中有37列需要为3个用户中的每个用户拉取。
谢谢!
发布于 2015-10-13 07:05:24
不,使用sql时这是不可能的。如果查询是在php代码中动态组装的,那么php代码可以将查询构建为字符串,以使用别名分别包含每个字段。
https://stackoverflow.com/questions/33091517
复制相似问题