关于如何查找重复行有几个问题,但这不是我需要的。
我有一个产品数据库,其中包含一个字段description
,其中包含该项目的编码HTML描述。
此内容由后端系统生成,该系统使用TinyMCE创建HTML描述。
用户有时会输入我想要找到的几个H标签实例。
所以我正在寻找任何包含以下内容的描述:
此正则表达式\b(\w+)\b(?=.*\b\1\b)/g
在字符串中找到重复的单词,但我不确定如何使用它来查找特定的单词。
所以,如果我数据库中任何一行的描述字段如下所示:
<h1>this is a header</h1>
Here is some text about stuff
<h1>here is another header</h1>
我怎么找到它?
SELECT * FROM products WHERE description *CONTAINS <h1> AND </h1> TWICE*
答案 0 :(得分:0)
我没有要测试的MySQL实例,这对我来说可能是天真的,但我认为你可以使用两个值的简单通配符测试来做到这一点。正则表达式会更复杂,但是通配符会更便携,对于除了你以外的其他人更容易理解,并且基于正则表达式如何工作,可能更快(你需要测试它)。
SELECT
*
FROM
products
WHERE
description LIKE '%<h1>%<h1>%' OR
description LIKE '%<h2>%h2>%' OR
description LIKE '%<h3>%<h3>%'
我没有机会对此进行测试,但它对我的本地CMS有效(尽管没有在MySQL上运行)。
答案 1 :(得分:0)
试试这个
SELECT * FROM products WHERE description REGEXP '(h1+|h2+|h3+)'
h1 +,表示1个或更多匹配,以及|匹配序列h1,h2或h3
中的任何一个