插入数据时检测相似重复公司名称的实现问题求助
插入数据时检测相似重复公司名称的实现问题求助
大家好,我现在碰到一个公司名称查重的需求,想请各位帮忙看看怎么解决:
我的数据库里有一条公司名称记录是 "Moon Light",现在希望实现:当用户输入类似 "PX Moon Light" 或者 "Moon Light Corp" 这类内容时,系统能检测到这和已有记录高度相似,从而拒绝插入。
我自己从其他帖子里找了几种方法逐一尝试,但都没达到预期效果,具体尝试的代码如下:
首先获取用户输入的名称:
$name = $_POST['name']; // 比如这里用户输入的是 'PX Moon Light'
然后尝试了以下几种SQL查询语句:
SELECT name FROM tbl_company WHERE name REGEXP '$^$name' LIMIT 1SELECT name FROM tbl_company WHERE name REGEXP '$^$name^$' LIMIT 1SELECT name FROM tbl_company WHERE name REGEXP '^$name^' LIMIT 1SELECT name FROM tbl_company WHERE name REGEXP '$name' LIMIT 1SELECT name FROM tbl_company WHERE name LIKE '%PX Moon Light%' LIMIT 1
之后执行查询并判断:
$res = mysqli_query($conn,$sql); if(mysqli_num_rows($res)>0) { echo 'rejected, possible similar data'; }
但这些SQL语句都没能正确检测出相似的公司名称,想请教各位有没有合适的解决思路或者正确的查询方法呀?
备注:内容来源于stack exchange,提问作者Bapholin
相关产品推荐
相关产品推荐

