MySQL:如果字符串的结尾看起来像'BV'更新

时间:2012-06-08 13:21:32

标签: mysql if-statement substring

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'更新列。

2 个答案:

答案 0 :(得分: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'

答案 1 :(得分: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';