如何解决MySQL:无法在SELECT开始时添加常量字段错误1064
使用MariaDB v。10,我尝试在所有其他列SELECT
之前添加自定义常量作为*
查询的第一列。这将导致通用语法错误1064。
例如:
# mysql -u root -p$mypass -D mysql -e "SELECT 'X',* FROM user;"
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '* FROM user' at line 1
如果我只选择一些列,那么它会起作用:
# mysql -u root -p$mypass -D mysql -e "SELECT 'X',host,user FROM user;"
+---+-----------------+------------------+
| X | host | user |
+---+-----------------+------------------+
| X | 127.0.0.1 | root |
| X | ::1 | root |
...
如果我使用*
选择所有列,但将我的常量列放在其后,
# mysql -u root -p$mypass -D mysql -e "SELECT *,'X' FROM user;"
... [long,correct output] ...
如何进行SELECT 'some constant',* FROM my_table
以避免这种奇怪的错误?
解决方法
如果SELECT *
是SELECT
列表中的第一件事,则只能使用。如果它与其他值混在一起,则需要使用表名或别名,
SELECT 'X',user.* FROM user;
,
为*
使用表别名。我也将第一列命名为:
SELECT 'X' as col,u.*
FROM user u;
在与其他值一起选择时,MySQL需要*
的限定条件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。