2012-06-08 24 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';