在Rails中区分大小写

时间:2009-12-23 21:54:45

标签: mysql ruby-on-rails find collation case-sensitive

我正在使用带有排序规则utf8_general_ci的Mysql,对于我的大部分搜索都很好。但对于一个模型和一个字段,我想找到一个案例敏感的记录。怎么做?

2 个答案:

答案 0 :(得分:3)

MySQL正在执行不区分大小写的查询,而不是Ruby on Rails。

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

您可以创建数据库列,要求区分大小写区分大小写

  1. 将字段修改为BINARYVARBINARY,而不是CHAR和VARCHAR。
  2. 修改字段以进行二进制整理(例如latin1_bin)
  3. -

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

    或者您可以修改查询以使用COLLATE运算符:

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

答案 1 :(得分:0)

如果您总是希望以区分大小写的方式搜索该列,最好的方法是使用排序规则定义它utf8_bin