2012-06-08 25 views
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; 

我得到一个语法错误,不知道在哪里看,任何帮助将appriciated! 我想要做的是,如果一个字符串的结尾看起来像“BV”更新列。MySQL:如果字符串的末尾看起来像'BV'UPDATE

回答

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' 
+0

谢谢,它工作:)我会在11分钟内接受这个答案! – Sem

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子句和LIKE比较。

UPDATE company 
SET company_name = SUBSTRING(company_name, 1, LENGTH(company_name)-3) 
WHERE company_name like '% BV';