表中忽略链接的mysql搜索字符串

时间:2014-08-12 09:16:15

标签: mysql sql database wordpress

我正在尝试搜索数据库中与字符串匹配的wordpress帖子。

但是,我希望将包含匹配单词的行作为纯文本,而不是在链接中嵌入单词的行。

例如,如果帖子在' wp_posts'中有以下文字数据库表:

'This is a Test page: <a href="http://localhost/test-page">About Test</a>'.

我搜索“&#39; about&#39;在我的自定义查询中:

SELECT * FROM `wp_posts` WHERE post_content like '%about%';

所以我得到上面的帖子作为结果。 有没有办法可以忽略链接中嵌入搜索字符串的帖子,并获取其他搜索字符串作为普通字符串的一部分的帖子?

我尝试了一个REGEX查询,没有运气:

SELECT * FROM `wp_posts` WHERE post_content REGEXP '[[:<:]]about[[:>:]]';

3 个答案:

答案 0 :(得分:2)

可能是这样的:

SELECT * FROM `wp_posts` WHERE post_content LIKE '%about%' AND post_content NOT REGEXP '>[^>]*about[^<]*<';

答案 1 :(得分:1)

试试这个

SELECT * FROM `wp_posts` WHERE post_content REGEXP '^[^<>]+about';

以下是Fiddle

答案 2 :(得分:0)

在sqlfiddle中它工作正常!

http://sqlfiddle.com/#!2/f1697/2

创建脚本

CREATE TABLE supportContacts 
(
    test longtext
);

INSERT INTO supportContacts(test) VALUES ('This is a Test page: <a href="http://localhost/test-page">About Test</a>')

选择

select * from supportContacts where test like '%about%'