选择中存在星号是否排除其他列?

2022-01-15 00:00:00 sql mariadb mysql

This question is all about laziness... I'd like to do something like this:

select some_func(some_col), * from my_table

So that I don't have to do this:

select some_func(some_col), col_1, col_2... col_ad_infinitum from my_table

Is there any way to make the first query work? This is the error I get when I run it:

ERROR 1064 (42000) at line 1: 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 my_table' at line 1

解决方案

Do you mean that in MySQL your first query:

SELECT some_func(some_col), * 
FROM my_table

produces this error?:

Error Code: 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 '*' at line 1


You can change your code into (this results in no errors!):

SELECT *, some_func(some_col) 
FROM my_table

or into this, if you want to have the calculated columns first:

SELECT some_func(some_col), t.* 
FROM my_table AS t

相关文章