2011-07-25 94 views
5

我在MySQL中发现其中类似WHERE x = 'Test'条款将不区分大小写(“TEST”,“测试”等)的匹配SQL和不区分大小写条件

当使用PDO,是公平的假设,这大多数数据库服务器都是这样吗?例如,如果我使用MSSQL或Oracle,这是否会是相同的情况?

+0

@rabudde我认为是这样,但我可以向你保证,查询匹配不敏感。 –

+0

区分大小写取决于列的排序规则。 – Karolis

回答

8

这并不是说这取决于服务器,但归类。大多数数据库将默认为不区分大小写的排序规则,因此您可以假设,但如果遇到区分大小写的情况,则很容易进行更改。

+0

是否可以在个别字段的基础上进行敏感/非敏感归类?还是全线? –

+1

@Lea是的。 – Karolis

+1

您不仅可以为特定列指定排序规则,还可以通过在必要时指定COLLATE collat​​ion_name来进行特定比较。 –

1

Oracle区分大小写,默认数据为

select * from 'test'; 

不等于

select * from 'TEST'; 

已经有一段时间,因为我最后一次使用他们,但我似乎记得Informix的beiung区分大小写和Sybase我觉得取决于整理。

正如其他响应者所指出的,SQL Server依赖于排序规则。

所以我认为,唯一真正的答案是它依赖于RDBMS

1

SQL Server上的情况下,在默认情况下不区分大小写。在SQL Server中,您可以使用Collat​​ion使用区分大小写的比较,请参阅here

Oracle默认情况下区分大小写。您可以使用'UPPER'语句执行不区分大小写的搜索,请参阅here

+0

,如果'UPPER'对所有SQL都是标准的,你知道吗?是否有可供我参考的标准函数列表?谢谢 –