2009-12-23 70 views
2

我使用MySQL與整理utf8_general_ci和我的大部分搜索這是件好事。但是,對於一個模型,一個字段我想找到的情況下敏感的記錄。怎麼做?區分大小寫找到Rails的

回答

3

這是MySQL的是做不區分大小寫的查詢,而不是Ruby on Rails的。

http://dev.mysql.com/doc/refman/5.0/en/case-sensitivity.html

你可以把數據庫列,需要區分大小寫區分大小寫

  1. 修改字段是BINARYVARBINARY,而不是CHAR和VARCHAR。
  2. 修改字段具有二進制排序(如latin1_bin)

-

create table tbl_name (
    ... 
    data varchar COLLATE latin1_bin 
) 

或者,您可以修改您的查詢要使用分頁符:

SELECT * from tbl_name WHERE col_name COLLATE latin1_bin LIKE 'a%'

+0

是的,我知道,但我想找到它與區分大小寫的軌道時,所有其他搜索區分大小寫 – klew 2009-12-23 22:05:28

+1

我知道如何做到這一點在MySQL。我在問如何在Rails中做到這一點。我已經使用Model.find_by_sql完成了它,但我正在尋找更清晰的解決方案。 – klew 2009-12-23 22:31:19

+0

基本上任一MySQL使用的數據類型爲具有區分大小寫屬性或SELECT查詢力匹配區分大小寫列。 Ruby on Rails不會影響前者,而且我不知道使用Model.find_by_sql的其他方式來執行後者 – 2009-12-25 10:05:16

0

如果你總是希望搜索在區分大小寫的方式列中,最好的辦法是用整理定義它utf8_bin

+0

我該怎麼辦它? – klew 2009-12-23 22:04:36