mysql中的替换功能不起作用

时间:2018-06-25 16:26:41

标签: mysql oracle

我有一张这样的桌子;

Lastname
MORALES
THOMPSON
SMITH

但是我想使用replace函数将所有姓氏更改为另一个字符,如下所示:

  • 我希望将“ MORALES”替换为“ TEYE”

我尝试了这种语法;

select lastname, REPLACE(lastname, 'M', 'TEYE')
from customers;

但这就是我得到的;

'MORALES    TEYEORALES'

代替

'MORALES    TEYE'

请给我帮助。 谢谢

2 个答案:

答案 0 :(得分:0)

您告诉它仅替换M,而不是整个名称,这就是它的作用。如果要替换全名,请输入:

SELECT lastname, REPLACE(lastname, 'MORALES', 'TEYE')
FROM customers

REPLACE()替换子字符串,因此如果有lastname = AMORALES,结果将为ATEYES。如果只想在全名时替换它,则可以使用:

SELECT lastname, IF(lastname = 'MORALES', 'TEYE', lastname)
FROM customers

答案 1 :(得分:0)

不是MySQL的专家;但是,看起来您正在获得所要的东西,姓氏跟着用“ TEYE”代替“ M”的姓氏。

您是否尝试附加要添加的字符串? 选择姓氏+“ TEYE”(或某些变体以mySQL语法连接。

如果姓氏仅在当前等于“ MORALES”的情况下才需要更新,则您很可能可以添加where(行选择)子句(例如where lastName =“ morales”)来过滤要更新的行