2011-07-25 310 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都是標準的,你知道嗎?是否有可供我參考的標準函數列表?謝謝 –