我发现在MySQL中,像WHERE x = 'Test'
这样的where子句会忽略大小写('TEST'、'test'等都可以匹配)。
在使用PDO时,是否可以假设大多数数据库服务器也是如此?例如,如果我使用MSSQL或Oracle,是否也是这种情况?
我发现在MySQL中,像WHERE x = 'Test'
这样的where子句会忽略大小写('TEST'、'test'等都可以匹配)。
在使用PDO时,是否可以假设大多数数据库服务器也是如此?例如,如果我使用MSSQL或Oracle,是否也是这种情况?
这并不取决于服务器,而是取决于字符集。大多数数据库默认使用不区分大小写的字符集,因此您可以假设如此,但如果遇到一个区分大小写的字符集,更改它很容易。
Oracle默认情况下对数据大小写敏感,例如:
select * from 'test';
不等于
select * from 'TEST';
已经有一段时间没有使用它们了,但我似乎记得 Informix 是区分大小写的,而 Sybase 则可能取决于排序规则。
正如其他回答者所指出的那样,SQL Server 取决于排序规则。
因此,我认为唯一真正的答案是取决于关系数据库管理系统。
你说得对,一般情况下 SQL 在字符串匹配时是不区分大小写的,几乎所有的服务器都是如此。
如果需要的话,这里有一篇文章展示了不同的方法来进行大小写敏感的匹配!
http://vyaskn.tripod.com/case_sensitive_search_in_sql_server.htm