Microsoft SQL Server中不区分大小写的搜索

Mah*_*asi 1 sql sql-server sql-server-2005

Arabic_BIN在Microsoft SQL Server 2005上有一个带有排序规则的数据库.

如果我运行此查询:

SELECT ID FROM maj_Users WHERE UserName = 'mahdi'
Run Code Online (Sandbox Code Playgroud)

我什么都没得到,但是如果我运行这个查询:

SELECT ID FROM maj_Users WHERE UserName = 'Mahdi'
Run Code Online (Sandbox Code Playgroud)

我会得到一个单元格...似乎SQL Server正在敏感地搜索数据库,但我想搜索不区分大小写的数据库.

有什么办法吗?

编辑:我也试过,SELECT ID FROM maj_Users WHERE UserName LIKE 'mahdi'但它没有工作......

Rem*_*anu 8

SQL Server不是以区分大小写的方式搜索数据库,也不是在不区分大小写的情况下搜索数据库.它根据所涉及的列的整理来完成.区分大小写和不区分大小写的排序规则.我建议您阅读Collat​​ion和Unicode支持.不要开始做UPPERLOWER比较,这不是正确的方法,它有因特区政府能力的严重性能问题.


dev*_*vio 6

您可以使用COLLATE关键字覆盖比较中数据库或列级别上定义的COLLATION:

SELECT ID FROM maj_Users WHERE UserName = 'Mahdi' COLLATE [collation name]
Run Code Online (Sandbox Code Playgroud)

要查找不区分大小写的阿拉伯语的排序规则,请使用查询

select * from fn_helpcollations()
where name like 'Arabic%' and name like '%CI%'
Run Code Online (Sandbox Code Playgroud)

Arabic_CI_AI或Arabic_100_CI_AI似乎是您的正确选择.