2015-11-19 49 views
0

我想查找特定列中未格式化文本的表格的所有行並重新格式化它。更新似乎是正確的選擇,但它失敗了。例如,這表:爲什麼MySql更新忽略where子句?

CREATE TABLE `test` (
    `id` INT(11) NOT NULL AUTO_INCREMENT, 
    `name` VARCHAR(50) NOT NULL, 
    PRIMARY KEY (`id`)); 
INSERT INTO `test` (name) VALUES ('jerk'),('cad'),('slouch'),('slime'); 

運行下面的更新到!添加到不包含它(但不是名稱是這樣)每名忽略where子句中,始終更新:

UPDATE test SET name = CONCAT(name, '!') WHERE LOCATE(name, '!') = 0; 

重複應用此更新不斷添加更多name的末尾。

這裏發生了什麼事,我該如何做這個條件更新?

編輯:固定錯字WHERELOCATE - > WHERE LOCATE

+1

將參數交換到LOCATE。 – Uueerdo

+2

查詢中WHERE和LOCATE之間是否有空格? – cnsumner

回答