我注意到在MySQL中,WHERE x = 'Test'
之类的where子句无论如何都匹配('TEST','test'等)
使用PDO时,可以假设大多数数据库服务器都是这种情况吗?例如,如果我要使用MSSQL或Oracle,那么这是相同的情况吗?
答案 0 :(得分:8)
它不是它依赖的服务器,而是整理。大多数数据库将默认为不区分大小写的排序规则,因此您可以假设,但如果遇到区分大小写的数据库,则很容易更改。
答案 1 :(得分:1)
默认情况下,Oracle对数据区分大小写 例如
select * from 'test';
不等于
select * from 'TEST';
自从我上次使用它们以来已经有一段时间,但我似乎记得Informix beiung区分大小写,而Sybase我认为这取决于整理。
正如其他responseandt所述,SQL Server依赖于排序规则。
所以我认为唯一真正的答案是它取决于RDBMS
答案 2 :(得分:1)
默认情况下,SQL Server不区分大小写。在SQL Server中,您可以使用排序规则来使用区分大小写的比较,请参阅here。
默认情况下,Oracle区分大小写。您可以使用“UPPER”语句执行不区分大小写的搜索,请参阅here。
答案 3 :(得分:0)
你是对的,sql通常对字符串匹配不区分大小写,几乎适用于所有服务器。
以下是一篇文章,展示如何以不同的方式进行案例敏感性匹配,如果您需要的话!
http://vyaskn.tripod.com/case_sensitive_search_in_sql_server.htm