首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用*标记列

问使用*标记列
EN

Stack Overflow用户
提问于 2015-10-13 06:58:03
回答 1查看 27关注 0票数 1

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

代码语言:javascript
复制
$connect->prepare("
SELECT 
     user.firstName as prefix_firstName,
     user.lastName as prefix_lastName
   FROM user
WHERE user.ID = '5'
    ");

我想要的是能够使用user.*,并使用*指定一个前缀作为prefix_。如下所示:

代码语言:javascript
复制
SELECT 
   user.* as prefix_*

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

代码语言:javascript
复制
SELECT
  user.firstName as prefix_firstName,
  user.lastName as prefix_lastName

我希望这一点得到了足够的解释。

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

代码语言:javascript
复制
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变量,该变量将覆盖自身。我想也许有一种比这样做更短的方法。

代码语言:javascript
复制
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个用户中的每个用户拉取。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2015-10-13 07:05:24

不,使用sql时这是不可能的。如果查询是在php代码中动态组装的,那么php代码可以将查询构建为字符串,以使用别名分别包含每个字段。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33091517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档