【问题标题】:how to remove anything after youtube id using mysql?如何使用 mysql 在 youtube id 之后删除任何内容?
【发布时间】:2016-06-15 22:19:00
【问题描述】:

大家好,我有一个 mysql 表,其中有一个名为 ae_url 的列,其中包含 youtube url,我想删除 youtube id 之后的任何内容。例如: http://www.youtube.com/watch?v=1B6tWkbso1o&feature=youtu.be 删除“&feature=youtu.be”

在某些情况下,播放列表也会出现在 youtube id 之后。

如何使用 mysql 查询来完成这项任务? 我必须通过删除 youtube id 之后的任何内容来更新包含数千个 youtube url 的列 ae_url

非常感谢您的热心帮助:)

【问题讨论】:

    标签: mysql url youtube


    【解决方案1】:

    您几乎可以确定 youtube ID 结束时是否有任何一致的标识符。

    两个主要选项是:

    1) 识别何时出现非 id 字符(在本例中为“&”)并截断条目

    2) 看ID的字符数是否一致

    例如 1,假设指示符是“&”字符

    ALTER TABLE your_table ADD COLUMN trunc_url string;
    UPDATE your_table SET trunc_url = 
         substring(ae_url, 1, --Start from first character
         charindex("&",ae_url)-1) --Index end by wherever the "&" symbol is found for cutting off;
    

    希望这会有所帮助!

    【讨论】:

      【解决方案2】:

      这对你有用吗:

      update tbl set ae_url = substr(ae_url, 1, locate('&', ae_url) - 1) 
      where locate('&', ae_url) > 0
      

      ?

      【讨论】:

      • 这几乎删除了我所有的 youtube 网址(好消息是我总是先处理副本)
      • 看起来其中一些没有 & 在其中。尝试更新后的答案(当然要先复制一份)。
      【解决方案3】:

      我终于得到了解决方案: 更新视频 SET ae_url = LEFT(ae_url, LOCATE('&', ae_url) - 1) WHERE ae_url like '%&%';

      效果很好

      也感谢您的友好建议

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-11-18
        • 1970-01-01
        • 2010-11-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多