MySQL别名列通配符[重复]
Posted
技术标签:
【中文标题】MySQL别名列通配符[重复]【英文标题】:MySQL Alias Column Wildcards [duplicate] 【发布时间】:2014-11-04 08:59:45 【问题描述】:我们寻找在 mysql SELECT 语句中使用通配符的可能性在列别名中
像这样:
对于每一列:
SELECT a.* as task_*, b.* as types_*
FROM tasks AS a
LEFT JOIN types AS b
ON a.type_id = b.id_type
ORDER BY a.lastmod DESC
不仅适用于显式列:
SELECT a.title as task_title, b.title as types_title
FROM tasks AS a
LEFT JOIN types AS b
ON a.type_id = b.id_type
ORDER BY a.lastmod DESC
但它不起作用,有什么想法吗?
注意:作为列名缩写的前缀
a.* as prefix_*
【问题讨论】:
您的要求并不完全清楚。你能举一个预期输入和输出的例子吗? 不,这是不可能的。您只能为单个列分配别名。 【参考方案1】:SELECT a.* as task_
完全错误。列别名用于单列而不是整个列列表。使用*
运算符,您可以从各自的表中选择所有列。您需要修改您的查询,如
SELECT a.*, b.*
FROM tasks AS a
LEFT JOIN types AS b
ON a.type_id = b.id_type
ORDER BY a.lastmod DESC
(OR) 为选择列表中的每一列显式设置列别名。根据您的评论,a.* as prefix_(*)
无法完成,因为没有内置这种类型的构造。
【讨论】:
这不是我想要的! - *** 对我想要的第二个通配符 * 有一些问题:SELECT a.* as task_(*) 你的意思是a.* as prefix_*
。不,这种类型的构造不存在,因此无法完成。【参考方案2】:
您必须明确选择每一列并为每一列分配别名
example: select a.emp_name as task_empame, a.location as task_location from ...
【讨论】:
可能是对 mysql dev 的功能请求 - 没有其他想法?以上是关于MySQL别名列通配符[重复]的主要内容,如果未能解决你的问题,请参考以下文章