【发布时间】:2018-06-16 13:19:48
【问题描述】:
某些 SQL 工具集(如 PDO)可以根据选择的第一列执行特殊操作,例如将其作为类名进行实例化或将其用作哈希表的键。不幸的是,PDO 从结果中删除了该列。如果我仍然希望它成为结果的一部分怎么办?
我尝试过诸如
之类的查询SELECT `class` as `myclass`, * FROM `mytable`
但我遇到了错误:
#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '* FROM
mytable附近使用正确的语法
我知道列名不能有冲突,因此
as `myclass`
以下工作正常:
SELECT `class` as `myclass`, `class` FROM `mytable`
如果不进行自连接或放置完整的列列表,这是否可能?
【问题讨论】:
-
你试过 mytable.* 吗?这可能会解决您的错误。
-
不要使用邪恶的
SELECT *。我很想找到一个不删除列的工具集 - 但如果直接写出列名可以解决问题,那么这似乎是一种合理的方法 -
@NigelRen 建议的副本是用于 oracle,而不是用于 mysql。
-
虽然答案是针对 Oracle,但解决方案是一样的 -
select rownum, table.* from table(来自之前链接的答案) -
感谢@NigelRen 指出可能的重复。它没有出现在我的搜索中。