【问题标题】:SQL to remove (number) from column values从列值中删除(数字)的 SQL
【发布时间】:2015-08-07 11:02:34
【问题描述】:

我有一个名为 members 的表列,包含 10k+ 条记录 一些成员名称旁边有一个数字,例如: 约翰·史密斯 (12) 简·多伊 (3)

是否有一个 sql 语句可用于从列中的所有值中删除“(数字)”?

【问题讨论】:

  • SELECT SUBSTRING_INDEX('Jane Doe (3)','(',1) n; -- Jane Doe

标签: mysql sql


【解决方案1】:

如果左括号用于数字,那么你可以这样做:

update table t
    set name = substring_index(name, ' (', 1)
    where name regexp ' ([0-9]+)';

我会先检查一下select

select name, substring_index(name, ' (', 1)
from table t
where name regexp ' ([0-9]+)';

【讨论】:

  • 谢谢,稍作调整,完美无瑕。
【解决方案2】:

你可以试试下面的字符串函数。这是一个工作示例http://sqlfiddle.com/#!9/20544/1

SELECT LEFT(NAME,INSTR(NAME,'(') - 1) New_Name from test;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-13
    • 2019-05-30
    • 2020-01-23
    • 2016-04-13
    • 1970-01-01
    • 2013-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多