Featured image of post MySQL 反向模糊查找

MySQL 反向模糊查找

大家肯定都用过 MySQL 的模糊查找, 那么你用过反向模糊查找吗?

今天写一个微信回复的 demo, 然后遇到这种场景.

  1. 收到特定的消息
  2. 根据数据库存储的关键字回复特定的内容
  3. 不能全匹配, 数据库可以模糊匹配

一说到模糊匹配, 大家肯定都想到like, 假设表结构如下

id   keyword    reply
1     大卫       他就是大卫
2     大卫王     他就是大卫

假如输入的关键字是大卫可以查找出所有含有大卫的关键字
这时候我们写的SQL肯定是这样子的:
select * from table_name where keyword like '%大卫%


我们换一种场景, 假如数据库我们只存一条记录, 不管用户输入, 大卫还是大卫王我们都会回复它同一个内容.这时候我们只需要反向模糊查找即可
表数据如下

id     keyword      reply
1      %大卫%       他就是大卫

之后我们写的SQL如下即可完成反向模糊查找
select * from table_name where '大卫' like keyword