我有这个脚本:
update edi_file_steps
set
user_id= table_B.id,
message= SUBSTRING( message, 1, CHARINDEX('[',message)-1)
from edi_file_steps table_A INNER JOIN GU_User table_B
where message LIKE '%Downloaded%'
AND table_B.login = SUBSTRING(
message,
CHARINDEX('[', message) + 1,
len(message) - CHARINDEX('[',message)-1
);
我在第 4 行收到 sql 语法错误:意外标记,
我的脚本有什么问题吗?sql
如果您使用的是 SQL Server,则您的格式不正确JOIN
。还有非常糟糕的表别名。也许这符合您的要求:
update fs
set user_id = u.id,
message = SUBSTRING(fs.message, 1, CHARINDEX('[', fs.message)-1)
from edi_file_steps fs INNER JOIN
GU_User u
on u.login = SUBSTRING(fs.message, CHARINDEX('[', fs.message)+1, len(fs.message)- CHARINDEX('[',fs.message)-1 )
where message LIKE '%Downloaded%' ;
EDIT:
在 MySQL 中,这将是:
update edi_file_steps fs INNER JOIN
GU_User u
on fs.message like concat('%[', u.login, ']%')
set user_id = table_B.id,
message = substring_index(fs.message, '[', 1)
where message LIKE '%Downloaded%' ;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)