Mysql 当我尝试将一行更新到我的表时,出现以下错误:

Mysql 当我尝试将一行更新到我的表时,出现以下错误:,mysql,Mysql,我使用concat函数而不是concat操作符“| |” mysql>更新GSLAB set empid=concatsubstrempid,1,2'-',substrempid,4,15其中substrempid,1,3'- 只是看起来在“where”之后有一个不必要的“empid”?使用| | |或在更新中似乎很奇怪在oracle中是否为concat除非它处于ANSII模式如果您想要组合字符串,则使用concat将更为明确。它不是或它是concat运算符我听到了,但除非它处于ANSII模式,

我使用concat函数而不是concat操作符“| |”


mysql>更新GSLAB set empid=concatsubstrempid,1,2'-',substrempid,4,15其中substrempid,1,3'-

只是看起来在“where”之后有一个不必要的“empid”?使用| | |或在更新中似乎很奇怪在oracle中是否为concat除非它处于ANSII模式如果您想要组合字符串,则使用concat将更为明确。它不是或它是concat运算符我听到了,但除非它处于ANSII模式,这就是我坚持使用concat的原因错误在where条件下,您在本版本中已修复。
mysql> select * from GSLAB;
+--------+--------------+
| empid  | destignation |
+--------+--------------+
| GS101  | Manager      |
| GS102  | ABC          |
| GS-103 | SAS          |
| GS-104 | dsSAS        |
| GS105  | EWSAS        |
| GS106  | EWQAS        |
+--------+--------------+
6 rows in set (0.00 sec)

mysql> update GSLAB set empid= substr(empid,4,15)||substr(empid,1,2)||'-' where empid substr(empid,1,3)<>'-';
ERROR 1064 (42000): 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 'substr(empid,1,3)<>'-'' at line 1
mysql>