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'但它没有工作......
SQL Server不是以区分大小写的方式搜索数据库,也不是在不区分大小写的情况下搜索数据库.它根据所涉及的列的整理来完成.区分大小写和不区分大小写的排序规则.我建议您阅读Collation和Unicode支持.不要不开始做UPPER或LOWER比较,这不是正确的方法,它有因特区政府能力的严重性能问题.
您可以使用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似乎是您的正确选择.