是否可以使用带有前缀的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个用户中的每一个提取。
谢谢!
答案 0 :(得分:0)
不,使用sql是不可能的。如果查询是在php代码中动态汇编的,那么php代码可以将查询构建为字符串,以便用别名单独包含每个字段。