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

标签 mysql

我想从字符串中搜索确切的单词,例如

id  Description
1   This is nice pen looking good
2   This is nice pendrive looking good

搜索字符串 : pen

我的当前查询

SELECT * FROM `table` WHERE Description like '%pen%';

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

预期输出

1   This is nice pen looking good

Demo

最佳答案

尝试使用正则表达式:

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

Demo

或使用 word boundaries :

SELECT 
    *
FROM
    `table`
WHERE
    Description regexp '[[:<:]]pen[[:>:]]';

关于MySQL - 从字符串中搜索确切的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42036956/

相关文章:

linux - Mysqldump - 删除所有外部连接

javascript - PHP 关闭子窗口后刷新父窗口

mysql count(*) 需要很长时间?有更好的选择吗?

mysql - 在MySQL中每2分钟间隔选择最新的记录

mysql - 事务或变量声明错误

mysql - 使用 group by 从连接表中获取最大日期

mysql - 如何在 sequelize 中关联和填充模型?

mysql - 为什么要在所需的数据库列上设置 `null: false, default: ""`?

mysql嵌套计数 - 怎么样?

javascript - 在 Node js 中从数据库获取响应的替代方法?