3

我有一列包含像“Tom Hardy”这样的数据,我添加了一个新查询来在这个列中搜索,如下所示:

SELECT  Number, Name, Business, [Tax File No], Phone
FROM            Archive
WHERE        (Name = @Name)

当我输入像“Tom Hardy”这样的全名时它可以工作,但我想通过搜索“Tom”或“Hardy”来查找结果。

我也试过:

SELECT  Number, Name, Business, [Tax File No], Phone
FROM            Archive
WHERE        (Name IN (@Name))

都不工作。

将 Visual Studio 2010 与连接到它的 C# 和 SQL 数据库一起使用。

请帮忙,谢谢!

4

2 回答 2

1

戴夫是对的,除了你还想检查小写/大写的场景,也许这就是你没有收到好的结果的原因

喜欢 :

SELECT  Number, Name, Business, [Tax File No], Phone
FROM            Archive
WHERE        (LOWER(Name) like '%' + LOWER(@Name) + '%')

此语句将两个值都转换为小写,并且比较再次有效

于 2012-11-27T12:40:12.003 回答
1

您需要在参数中添加通配符

WHERE Name LIKE '%' + @Name + '%'

所以

SELECT  Number, Name, Business, [Tax File No], Phone
FROM            Ahrcive
WHERE        (Name COLLATE UTF8_GENERAL_CI like '%' + @Name + '%')

我不认为你可以使用 'in' 关键字来做到这一点

于 2012-11-27T12:04:56.357 回答