在 SQL 服务器中使用 CONTAINS 关键字进行区分大小写的搜索
Case sensitive search using CONTAINS keyword in SQL Server
我想从我的数据库中搜索单词,它必须区分大小写。我将全文索引功能添加到我的 SQL 服务器并在我的 table 中实现。我想使用 CONTAINS
关键字进行搜索,区分大小写。可能吗?
SELECT *
FROM ResultDatabase
WHERE CONTAINS(Data ,'letS')
谢谢
字符串比较是否区分大小写(以及有关字符操作的其他行为)由数据库的排序规则定义。
有关详细信息,请参阅 docs。
您要么必须创建一个具有区分大小写排序规则的新数据库
CREATE DATABASE MyOptionsTest
COLLATE French_CS_AS; -- CS denotes a CaseSensitive Collation CI would denote a CaseInsensitive Collation
GO
或将现有数据库更新为区分大小写的排序规则
USE master;
GO
ALTER DATABASE MyOptionsTest
COLLATE French_CS_AS;
GO
来源:docs
编辑
如果您需要在同一个数据库上进行区分大小写和不区分大小写的搜索,您可以
- 使用区分大小写的排序规则,对于不区分大小写的搜索使用
UPPER
。这 可能 因某些特殊字符而失败,例如,如果它们没有大写变体。
SELECT * FROM someTable where UPPER(somecolumn) = UPPER('searchterm')
- 在查询中明确指定排序规则
SELECT * FROM someTable where somecolumn COLLATE French_CS_AS = 'SEARCHTERM'
我想从我的数据库中搜索单词,它必须区分大小写。我将全文索引功能添加到我的 SQL 服务器并在我的 table 中实现。我想使用 CONTAINS
关键字进行搜索,区分大小写。可能吗?
SELECT *
FROM ResultDatabase
WHERE CONTAINS(Data ,'letS')
谢谢
字符串比较是否区分大小写(以及有关字符操作的其他行为)由数据库的排序规则定义。 有关详细信息,请参阅 docs。
您要么必须创建一个具有区分大小写排序规则的新数据库
CREATE DATABASE MyOptionsTest
COLLATE French_CS_AS; -- CS denotes a CaseSensitive Collation CI would denote a CaseInsensitive Collation
GO
或将现有数据库更新为区分大小写的排序规则
USE master;
GO
ALTER DATABASE MyOptionsTest
COLLATE French_CS_AS;
GO
来源:docs
编辑 如果您需要在同一个数据库上进行区分大小写和不区分大小写的搜索,您可以
- 使用区分大小写的排序规则,对于不区分大小写的搜索使用
UPPER
。这 可能 因某些特殊字符而失败,例如,如果它们没有大写变体。
SELECT * FROM someTable where UPPER(somecolumn) = UPPER('searchterm')
- 在查询中明确指定排序规则
SELECT * FROM someTable where somecolumn COLLATE French_CS_AS = 'SEARCHTERM'