MYSQL select * plus one column again
MYSQL select * plus one column again
有一些像PDO这样的SQL工具集可以根据所选的第一列执行特殊操作,例如将其作为类名来实例化,或将其用作哈希表中的键。不幸的是,PDO会从结果中移除该列。如果我仍希望它作为结果的一部分,该怎么办?
我尝试了以下查询:
SELECT `class` as `myclass`, * FROM `mytable`
但是我得到了错误:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '* FROM
mytable
at line 1
我知道列名不能冲突,因此使用了
as `myclass`
而以下查询可以正常工作:
SELECT `class` as `myclass`, `class` FROM `mytable`
是否有可能在不进行自连接或列出完整列名的情况下实现这一点?
MYSQL select * plus one column again的问题是由于无法控制第一个选择的列而导致的。解决方法是使用一个表别名来选择所有的列,并在其后再选择一个额外的列。
解决方法一是使用以下语法:
SELECT `mytable`.`class` as `myclass`, `mytable`.* FROM `mytable`
解决方法二是使用以下语法:
SELECT t.class AS myclass, t.* FROM mytable t;
以上两种解决方法在MySQL语法上都是有效的,但第一种方法对我来说并没有太大帮助,因为我无法控制第一个选择的列。第三种解决方法是最好的,因为我可以使用一个通用的表别名,这样对我的查询构建器的修改最小。