【发布时间】:2012-06-22 22:31:14
【问题描述】:
如何在mysql中匹配整个单词?
例如,如果我输入“lau”,我不想想匹配“laura”或“劳伦斯'。
以下是我的工作查询,将“lau”与“laura”匹配
SELECT *
FROM
(
SELECT
p.page_id,
p.page_url AS url,
p.page_title AS title,
SUBSTRING_INDEX(p.page_content_1, ' ', 500) AS content,
EXTRACT(DAY FROM p.page_backdate) AS date,
EXTRACT(MONTH FROM p.page_backdate) AS month,
EXTRACT(YEAR FROM p.page_backdate) AS year
FROM root_pages AS p
WHERE p.page_hide != '1'
AND p.page_url != 'cms'
AND p.page_url != 'search'
ORDER BY p.page_created DESC
) x
WHERE x.content REGEXP '>[^<]*lau'
有什么办法可以修复我的REGEXP?
我之所以使用REGEXP '>[^<]*searchtext'是因为我的内容有html标签,比如,
<p class="heading-sitemap">About us</p>
<ul>
<li class="subheading-sitemap">The team</li>
<li><a href="#">Introduction to gt</a></li>
<li><a href="#">Simon x</a></li>
<li><a href="#">Cathrin xe</a></li>
<li><a href="#">Patrick x</a></li>
<li><a href="#">Laurence x</a></li>
<li><a href="#">Tessa x</a></li>>
</ul>
我不想搜索这个词可能落在<a href="http://laura.com">等标签内。
【问题讨论】:
-
看来您需要做很多工作,并且在这里进行大量过滤。祝你好运。我建议您逐步进行过滤。这可能需要子查询和/或多个查询。
-
另见 SO 的相关部分,在右侧栏中。很多用户之前都遇到过同样的问题。 -->
标签: php mysql sql regex substring