在mysql中编辑值

时间:2014-05-07 23:17:59

标签: mysql

我想运行一个简单的mysql命令来更新多行,如下所示:

coursename ="测试高尔夫俱乐部"

需要更新以删除"高尔夫俱乐部" (注意空白) 这样就变成了测试"

这可以在一个命令中完成吗?

4 个答案:

答案 0 :(得分:1)

这样的东西
UPDATE someTable set coursename = 'Test' where coursename = 'Test Golf Club'

会这样做,但它不是很灵活。

使用REPLACE()LIKE将为您提供

UPDATE someTable set coursename = replace(coursename, 'Golf Club', '')
  WHERE coursename LIKE '%Golf Club%';

哪个应该找到'高尔夫俱乐部'并用空字符串替换它。 ' WHERE'条款可能是多余的。

答案 1 :(得分:1)

要删除特定列值中出现的所有字符串' Golf Club',可以在REPLACE()语句中使用MySQL UPDATE函数。

UPDATE mytable SET coursename = REPLACE(coursename,' Golf Club','')
 WHERE coursename LIKE '% Golf Club%';

在UPDATE中使用它之前测试SELECT中的表达式是个好主意,例如

SELECT coursename                          AS old_val
     , REPLACE(coursename,' Golf Club','') AS new_val
  FROM mytable
 WHERE coursename LIKE '% Golf Club%';

然后,您可以验证此表达式是否按预期工作,并且是您要使用的。

(请注意,REPLACE函数替换字符串中的多次出现,而不仅仅是第一次出现。)

答案 2 :(得分:0)

更新TableName设置coursename ='测试',其中coursename ='测试高尔夫俱乐部'

答案 3 :(得分:0)

另一种解决方案

set @str = 'Test Golf Club';

UPDATE someTable set coursename = (select substring(@str,
                 (locate(' ',@str) + 1),
                 (length(@str) -
                        locate(' ',@str)))) where coursename = 'Test Golf Club'