0
我創建了一個數據庫,但沒有定義字符集,因此默認爲拉丁語。現在我需要做一個區分大小寫的搜索,所以我使用了命令:SQL中區分大小寫的搜索不起作用
$sql = "SELECT * FROM Users WHERE username = '$value' COLLATE SQL_Latin1_General_CP1_CS_AS";
問題是它沒有返回任何匹配。 在我的網頁中,我在頁面的head
中有<meta charset="utf-8">
,所以我想知道字符集編碼是否會成爲問題。 如果我在沒有COLLATE SQL_Latin1_General_CP1_CS_AS
的情況下進行搜索,它可以工作,但它不區分大小寫。
可能是什麼問題? 我應該將數據庫轉換爲始終使用utf-8嗎?
的字符集是沒有問題的,但你應該總是使用UTF-8(utf8mb4)。您必須使用區分大小寫或二進制排序規則。 http://dev.mysql.com/doc/refman/5.0/en/case-sensitivity.html – 2014-12-06 18:54:00
我會對用戶名使用不區分大小寫的方式,這樣人們更容易記住他們的用戶名,並且不會忘記他們是否有任何大寫字母用戶名中的字符。但那不是我決定的,這是你的決定。 – ub3rst4r 2014-12-06 18:58:05
如果你想要一個總是以區分大小寫的方式處理一個列,用一個區分大小寫或二進制排序來聲明它 – 2014-12-06 19:05:34