MySQL-从字符串中搜索确切的单词

Sad*_*san 5 mysql

我想从像这样的字符串中搜索确切的单词

id  Description
1   This is nice pen looking good
2   This is nice pendrive looking good
Run Code Online (Sandbox Code Playgroud)

搜索字符串pen

我当前的查询

SELECT * FROM `table` WHERE Description like '%pen%';
Run Code Online (Sandbox Code Playgroud)

上面的查询返回两条记录,但我只希望第一条记录。因为字与我的搜索字符串完全匹配。

预期产量

1   This is nice pen looking good
Run Code Online (Sandbox Code Playgroud)

演示版

Gur*_*ngh 6

尝试使用正则表达式:

SELECT 
    *
FROM
    `table`
WHERE
    Description regexp '(^|[[:space:]])pen([[:space:]]|$)';
Run Code Online (Sandbox Code Playgroud)

演示版

或使用单词边界

SELECT 
    *
FROM
    `table`
WHERE
    Description regexp '[[:<:]]pen[[:>:]]';
Run Code Online (Sandbox Code Playgroud)


Fai*_*sal 5

您可以使用REGEXPand[[:<:]][[:>:]]单词边界标记:

SELECT
    *
FROM
    `table`
WHERE
    Description REGEXP '[[:<:]]pen[[:>:]]';
Run Code Online (Sandbox Code Playgroud)

SQL 小提琴演示

  • 感谢@Faisal 的帮助 (2认同)