如何在mysql中匹配整个单词?
举例来说,如果我输入“ 刘 ”,我 不 希望匹配“ 劳拉 ”或“ 劳伦斯 ”。
以下是我的工作查询,将“ 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
我使用的原因REGEXP '>[^<]*searchtext'是我的内容具有html标签,例如,
REGEXP '>[^<]*searchtext'
<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">。
<a href="http://laura.com">
这行得通吗?
REGEXP’[^ <] * lau [[:>:]]’
根据文档,[[:::]]将匹配单词末尾的单词边界