[英]How to avoid duplicates in a database from a textfield in a form
对不起,这个问题之前可能已经被问过,但我找不到任何令人满意的答案,所以我在这里 go:
我有一个 web 表格。 用户可以在文本字段中输入公司名称。 然后使用此文本字段的内容来检查该公司是否已存在于数据库中,查询如下:
SELECT * FROM customers WHERE company_name='textfieldContent';
如果查询没有返回结果,则将公司添加到数据库中。 问题是,如果某些人以不同的方式书写公司名称(例如“Company”和“Company Ltd.”)或使用拼写错误,则查询不会返回任何结果,并且我的数据库中最终会有几行引用相同的公司。
有谁知道如何防止这种情况? 谢谢。
该网站是顺便用Struts2开发的。
听起来您需要在 web 表单中添加一些前端验证,以缩小范围。 您可以使用下拉选择来代替自由文本框,然后如果用户找不到公司名称,则可以选择将其添加到自由文本中。
你可以编写一些代码来删除所有的前缀和后缀,但是你会有一百万个边缘情况,最终很难维护。
如果您尝试使用确切的公司名称进行搜索,那么您可以试试这个
SELECT * FROM customers WHERE company_name LIKE '%textfieldContent%' LIMIT 1
或者你可以试试这个
SELECT * FROM customers WHERE company_name LIKE '%textfieldContent%'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.