SQL Query按名称搜索(包含两个或多个单词的组合)

时间:2015-04-22 11:12:14

标签: sql asp.net database

当我使用

进行搜索时
....LIKE '%" + txtName.Text + "%'.....

然后它返回包含txtName的所有行。像

这样的名字是可以的
  • Bijay或
  • Bijay kumar。

    行包含

  • 等数据
  • Bijay,

  • Bijay kumar kush,
  • Bijay kush。

在这种情况下,当使用Bijay kumar kush Bijay Kush进行搜索时,它应该返回txtNameBijay Kush。但是没有得到这样的输出。当使用名字和姓氏进行搜索而不提供中间名时,它是空的。这里txtName是用于搜索名称的全名文本框。我想知道我在哪里犯了错误。任何帮助都将是赞赏。提前谢谢。我正在使用这种类型的查询,如果没有如上所述的中间名搜索,则不会返回结果。

...
if (!String.IsNullOrEmpty(txtName.Text) && !String.IsNullOrWhiteSpace(txtName.Text))
       SearchSqlDataSource.SelectCommand += " AND (New_Employees.Full_Name LIKE '%" + txtName.Text + "%' OR New_Employees.Full_Name LIKE '%" + txtName.Text + "%')

1 个答案:

答案 0 :(得分:2)

我可能建议用通配符替换所有空格。您可以在应用程序或数据库中执行此操作。假设底层数据库是SQL Server,这里是数据库代码:

WHERE New_Employees.Full_Name LIKE REPLACE('%" + txtName.Text + "%', ' ', '%')