MYSQL select * plus one column again

25 浏览
0 Comments

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`

是否有可能在不进行自连接或列出完整列名的情况下实现这一点?

0
0 Comments

MYSQL select * plus one column again的问题是由于无法控制第一个选择的列而导致的。解决方法是使用一个表别名来选择所有的列,并在其后再选择一个额外的列。

解决方法一是使用以下语法:

SELECT `mytable`.`class` as `myclass`, `mytable`.*  FROM `mytable`

解决方法二是使用以下语法:

SELECT t.class AS myclass, t.*  FROM mytable t;

以上两种解决方法在MySQL语法上都是有效的,但第一种方法对我来说并没有太大帮助,因为我无法控制第一个选择的列。第三种解决方法是最好的,因为我可以使用一个通用的表别名,这样对我的查询构建器的修改最小。

0