【发布时间】:2015-08-24 11:34:31
【问题描述】:
我的数据库中有一个用户表,其中包含“全名”字段
在我的工具上,我正在上传一些文件,在将数据插入数据库之前,我通过比较数据库上的全名字段与文件上的全名字段来检查用户是否存在(这是唯一的选择,我无法比较 ID)。
我的问题是:当它们包含两个以上的单词时,如何比较这些字段?
有时全名不按顺序排列,例如:
-------------------------------------------------
| Database || File |
-------------------------------------------------
| Michael Yves Pierrot || Pierrot Michael Yves |
| Martin Dupont || Dupont Martin |
| Ben Jack Dupont || Ben Dupont Jack |
-------------------------------------------------
当只有两个词时,我可以使用这样的拆分:
public string getId()
{
string result;
QueryModel Query = new QueryModel();
string sql = "SELECT Username_Id FROM USERNAME WHERE Full_name = '"
+ Full_name.Replace("'", "''") + "'";
result = Query.ExecuteCommand(sql, "int");
if (result != "0")
{
string FullName2 = Full_name.Split(' ')[1] + " " + Full_name.Split(' ')[0];
sql = "SELECT Username_Id FROM USERNAME WHERE Full_name = '"
+ FullName2.Replace("'", "''") + "'";
result = Query.ExecuteCommand(sql, "int");
}
return result;
}
注意Query.ExecuteCommand(sql, "int");在用户不存在时返回"0"。
所以如果我的函数getId()返回"0"我将插入新用户,如果它返回别的东西,这意味着用户存在并将返回Username_Id
有人有想法吗?
谢谢。
【问题讨论】:
-
也许使用 '%' 运算符?
-
一个指示符是否相同可以是字符串的长度。
标签: c# sql-server asp.net-mvc database