我在MySQL中发现其中类似WHERE x = 'Test'
条款将不区分大小写(“TEST”,“测试”等)的匹配SQL和不区分大小写条件
当使用PDO,是公平的假设,这大多数数据库服务器都是这样吗?例如,如果我使用MSSQL或Oracle,这是否会是相同的情况?
我在MySQL中发现其中类似WHERE x = 'Test'
条款将不区分大小写(“TEST”,“测试”等)的匹配SQL和不区分大小写条件
当使用PDO,是公平的假设,这大多数数据库服务器都是这样吗?例如,如果我使用MSSQL或Oracle,这是否会是相同的情况?
这并不是说这取决于服务器,但归类。大多数数据库将默认为不区分大小写的排序规则,因此您可以假设,但如果遇到区分大小写的情况,则很容易进行更改。
是否可以在个别字段的基础上进行敏感/非敏感归类?还是全线? –
@Lea是的。 – Karolis
您不仅可以为特定列指定排序规则,还可以通过在必要时指定COLLATE collation_name来进行特定比较。 –
你是对的,一般来说sql对字符串匹配不区分大小写,几乎适用于所有服务器。
下面是一篇文章,展示如何以不同的方式做一个案例敏锐的匹配,但如果你需要它!
http://vyaskn.tripod.com/case_sensitive_search_in_sql_server.htm
Oracle区分大小写,默认数据为
select * from 'test';
不等于
select * from 'TEST';
已经有一段时间,因为我最后一次使用他们,但我似乎记得Informix的beiung区分大小写和Sybase我觉得取决于整理。
正如其他响应者所指出的,SQL Server依赖于排序规则。
所以我认为,唯一真正的答案是它依赖于RDBMS
@rabudde我认为是这样,但我可以向你保证,查询匹配不敏感。 –
区分大小写取决于列的排序规则。 – Karolis