【问题标题】:How to remove the first part of a string in MySQL up to and including the first comma?如何删除 MySQL 中字符串的第一部分,包括第一个逗号?
【发布时间】:2019-09-23 16:27:49
【问题描述】:

我的一个 MySQL 表中的一个字段包含一个逗号分隔的 jpg 图像 URL 列表。我想删除列表中的第一个 URL,包括第一个逗号。

我发现了很多从列表末尾删除或从列表前面删除前 x 个字符的示例。这里的问题是该列表可以包含 2 到 100 个逗号分隔的 URL,并且所有 URL 的长度都可能不同。

此字段内容的示例可能如下所示:

http://foo.com/51623/gfhfksdf/5956s/00.jpg,http://foo.com/51623/gfhfksdf/5956s/00.jpg,http://foo.com/51623/gfhfksdf/5956s/01.jpg,http://foo.com/51623/gfhfksdf/5956s/02.jpg,http://foo.com/51623/gfhfksdf/5956s/03.jpg

我只想删除列表中的第一个 URL 和第一个逗号。

【问题讨论】:

  • 使用INSTRREPLACE

标签: mysql substring


【解决方案1】:

假设所有 URL 都用逗号分隔,您很可能需要这样的内容

SELECT SUBSTR(ColumnName,LOCATE(',',ColumnName)+1) 
FROM YourTable;

SELECT SUBSTR(REPLACE(Column_Name,SUBSTRING_INDEX(ColumnName,',',1),''),2)
FROM YourTable

【讨论】:

  • 谢谢!我在导入时运行它,并且想在每个列表中没有第一个 URL 的情况下更新表,所以我这样写它以在导入后运行。更新 columnName 设置 columnName = SUBSTR(columnName,LOCATE(',',columnName)+1) ;效果很好!
【解决方案2】:
select 'https://google.com,https://youtube.com' as url, SUBSTRING(url, POSITION("," IN url)+1)

在这种情况下它会帮助你

【讨论】:

    【解决方案3】:
    declare @myvar varchar(100)
    
    set @myvar:= 'wantedtoremovethisurl.combeforethecomma,showthistextthough'
    
    select replace(@myvar,left(@myvar,instr(@myvar,',')),'')  
    

    如果没有逗号,你将不得不解决

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多