当前位置: 首页 > news >正文

查询语句来提取 detail 字段中包含 xxx 的 URL 里的 commodity/ 后面的数字串

您可以使用以下 SQL 查询语句来提取 detail 字段中包含 oss.kxlist.com 的 URL 里的 commodity/ 后面的数字串:

<p><img style="max-width:100%;" src="https://oss.kxlist.com//8a989a0c55e4a7900155e7fd7971000b/commodity/20170925/20170925190215_f46831.jpg"/><br/></p><p><br/></p>
SELECTSUBSTRING_INDEX(SUBSTRING(detail, INSTR(detail, 'oss.kxlist.com')),'commodity/',-1) AS extracted_number_string
FROM`product`
WHEREINSTR(`detail`, 'oss.kxlist.com') > 0AND INSTR(detail, 'commodity/') > INSTR(detail, 'oss.kxlist.com');

语句解释:

  1. SELECT ... FROM product WHERE ...: 这是基本的 SELECT 查询框架,从 product 表中选择数据,并使用 WHERE 子句进行条件筛选。

  2. WHERE INSTR(detail, 'oss.kxlist.com') > 0 AND INSTR(detail, 'commodity/') > INSTR(detail, 'oss.kxlist.com'): WHERE 子句包含两个条件,使用 AND 连接,确保同时满足:

    • INSTR(detail, 'oss.kxlist.com') > 0: 第一个条件,确保 detail 字段中包含 oss.kxlist.com。 这和我们之前的查询条件一样,用于筛选出包含旧域名的记录。
    • INSTR(detail, 'commodity/') > INSTR(detail, 'oss.kxlist.com'): 第二个条件,确保 commodity/ 出现在 oss.kxlist.com 之后。 这更精确地定位到您想要提取数字串的 URL 部分,避免误提取其他地方可能出现的 commodity/
  3. SUBSTRING_INDEX( ... , 'commodity/', -1): SUBSTRING_INDEX() 函数用于截取字符串,并根据指定的分隔符和计数返回子字符串。

    • SUBSTRING(detail, INSTR(detail, 'oss.kxlist.com')): 内层 SUBSTRING() 函数:
      • INSTR(detail, 'oss.kxlist.com'): 找到 detail 字段中 oss.kxlist.com 第一次出现的位置。
      • SUBSTRING(detail, INSTR(detail, 'oss.kxlist.com')): 从 detail 字段中,截取从 oss.kxlist.com 第一次出现的位置开始到字符串末尾 的子字符串。 这样做是为了先定位到包含旧域名的 URL 部分,再在这个子字符串中查找 commodity/
    • SUBSTRING_INDEX(..., 'commodity/', -1): 外层 SUBSTRING_INDEX() 函数:
      • 第一个参数是内层 SUBSTRING() 函数截取的结果 (即包含 oss.kxlist.com 开始的子字符串)。
      • 第二个参数 'commodity/' 是分隔符,我们想要根据 commodity/ 来分割字符串。
      • 第三个参数 -1 是计数。 -1 表示返回分隔符最后一次出现之后的所有子字符串。 由于我们已经用内层 SUBSTRING() 定位到了 URL 部分,并且 URL 结构通常是 ...oss.kxlist.com//.../commodity/数字串..., 使用 -1 可以直接提取 commodity/ 后面的部分,也就是您需要的数字串。
  4. AS extracted_number_string: AS 关键字用于给查询结果的列起一个别名,这里将提取出来的数字串列命名为 extracted_number_string,使结果更易于理解。

执行查询:

您可以使用 MySQL 客户端工具执行这个查询语句。 执行后,您将会得到一个结果集,每一行都包含一个名为 extracted_number_string 的列,列值就是 detail 字段中包含 oss.kxlist.com 的 URL 里, commodity/ 后面的数字字符串。

示例结果 (假设 detail 字段包含 <img src="//oss.kxlist.com//8a989a0c55e4a7900155e7fd7971000b/commodity/20170925/20170925190215_f46831.jpg"/>):

extracted_number_string
20170925/20170925190215_f46831.jpg"/>
… (其他符合条件的记录)

请注意:

  • 这个查询语句假设在包含 oss.kxlist.com 的 URL 中,commodity/ 后面紧跟着您需要的数字串。 如果 URL 结构更复杂,或者 commodity/ 后面的内容不总是数字串,您可能需要根据实际情况调整 SUBSTRING_INDEX() 函数的参数,或者使用更复杂的正则表达式或字符串处理方法来精确提取您想要的内容。
  • 提取出来的字符串可能仍然包含一些不需要的部分 (例如示例结果中的 "/> )。 如果您只需要纯数字部分,可能需要进一步使用字符串函数或正则表达式来清洗和提取。 但这个查询已经提取了 commodity/ 后面的主要部分,您可以在此基础上进行进一步处理。

在这里插入图片描述

http://www.lryc.cn/news/535264.html

相关文章:

  • 堆排序
  • 【MySQL】我在广州学Mysql 系列—— 数据备份与还原
  • 【LeetCode Hot100 双指针】移动零、盛最多水的容器、三数之和、接雨水
  • HTML应用指南:利用POST请求获取接入比亚迪业态的充电桩位置信息
  • Android车机DIY开发之软件篇(十二) AOSP12下载编译
  • Jenkins+gitee 搭建自动化部署
  • 【文本处理】如何在批量WORD和txt文本提取手机号码,固话号码,提取邮箱,删除中文,删除英文,提取车牌号等等一些文本提取固定格式的操作,基于WPF的解决方案
  • Linux系统引导与服务管理
  • 网络工程师 (30)以太网技术
  • react项目引入tailwindcss不生效解决方案
  • 【C#】条件运算符
  • Windows11+PyCharm利用MMSegmentation训练自己的数据集保姆级教程
  • WPS计算机二级•文档的文本样式与编号
  • Word中Ctrl+V粘贴报错问题
  • python-leetcode 24.回文链表
  • 数据治理双证通关经验分享 | CDGA/CDGP备考全指南
  • 3.4 学习UVM中的uvm_monitor类分为几步?
  • Java在大数据处理中的应用:从MapReduce到Spark
  • 日常吐槽。
  • 2025最新版Node.js下载安装~保姆级教程
  • 机器学习:学习记录(二)
  • 迁移学习 Transfer Learning
  • 实现:多活的基础中间件
  • Mybatis源码01 - 总体框架设计
  • 在大型语言模型(LLM)框架内Transformer架构与混合专家(MoE)策略的概念整合
  • Selenium WebDriver自动化测试(扩展篇)--Jenkins持续集成
  • Wiki文档转换为Word技术
  • 1.【线性代数】——方程组的几何解释
  • 力扣1448. 统计二叉树中好节点的数目
  • 【C#零基础从入门到精通】(二)——C#注释和命名法详解