You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MariaDB中检索嵌套在<table>标签内部的<p>标签

问题原因

你之前使用的查询语句存在两处明显错误:

  • LIKE语法仅支持%(匹配任意长度任意字符)、_(匹配单个任意字符)作为通配符,你用到的*会被识别为普通字符匹配,无法得到预期结果
  • 即使将*替换为%,普通LIKE查询也无法限制<p>必须出现在<table>和</table>之间,会出现大量误命中的情况

可行解决方案

方案1:正则匹配(适用MariaDB 10.0.5及以上版本)

MariaDB 10.0.5开始支持PCRE正则,可以用负向预查实现精准匹配,查询语句如下:

SELECT * FROM 你的表名
WHERE content REGEXP '<table[^>]*>([^<]|<(?!/table>))*<p[^>]*>';

该写法兼容带自定义属性的table、p标签,同时避免了贪婪匹配导致p标签出现在table外的误判问题。

如果你的MariaDB版本低于10.0.5不支持正则预查,可以用LIKE配合字符串截取实现:

SELECT * FROM 你的表名
WHERE content LIKE '%<table>%<p>%</table>%'
AND SUBSTRING_INDEX(content, '</table>', 1) LIKE '%<table>%<p>%';

方案2:业务代码解析(100%准确率)

如果你的业务场景存在table嵌套、HTML标签不规范等复杂情况,正则查询可能出现边缘场景误判,建议直接将content字段的HTML内容取出,在业务代码中用HTML解析库(如Python BeautifulSoup、Java Jsoup)解析DOM结构,直接查找table标签内部的p节点即可。


内容的提问来源于stack exchange,提问作者Tushar Korat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 16:36:03