0
UPDATE company
IF SUBSTRING(company_name, LENGTH(company_name)-3, LENGTH(company_name)) = ' BV'
THEN SET company_name = SUBSTRING(company_name,1,LENGTH(company_name)-3);
END IF;

我收到语法错误,不知道在哪里看,任何帮助都会得到帮助!我想要做的是,如果字符串的结尾看起来像 'BV' UPDATE 列。

4

2 回答 2

3

使用where子句代替IF

UPDATE company 
SET company_name = SUBSTRING(company_name,1,LENGTH(company_name)-3)
where SUBSTRING(company_name, LENGTH(company_name)-3, LENGTH(company_name)) = ' BV'
于 2012-06-08T13:24:13.790 回答
0

您的 IF 语句中有错误:

IF SUBSTRING(company_name, LENGTH(company_name)-3, LENGTH(company_name)) = ' BV'

应该

IF SUBSTRING(company_name, LENGTH(company_name)-3, 3) = ' BV'

一个更简单的方法是使用 where 子句和类似的比较。

UPDATE company
SET company_name = SUBSTRING(company_name, 1, LENGTH(company_name)-3)
WHERE company_name like '% BV';
于 2012-06-08T13:31:42.020 回答