2012-04-19 20 views
0

以下:我可以使用IN運算符在MySQL中以區分大小寫的方式查詢數據嗎?

select * from people where first_name in ('John', 'Jim'); 

將帶來具有FIRST_NAME像

  • 約翰
  • 約翰
  • 吉姆
  • JIM

所有的人和各種各樣的這種組合因爲查詢在不區分大小寫的模式下運行。

我該如何在區分大小寫的模式下運行?

我想:

select * from people where first_name in binary ('John', 'Jim'); 

,但它不工作。

請不要告訴我改變列的排序規則。我希望根據用戶的選擇動態地進行此操作(以區分大小寫或不區分大小寫)。

什麼?

回答

1

binary的想法是好的,但是你把它應用到列名,而不是搜索字詞。這樣,索引將不會被使用。但是,您可以使用組合:

WHERE first_name in ('John','Jim') AND BINARY first_name in ('John','Jim') 
1

嘗試

select * from people 
where first_name COLLATE latin1_general_cs in ('John', 'Jim'); 
相關問題