Чувствительная к регистру находка в Rails - PullRequest
2 голосов
/ 24 декабря 2009

Я использую Mysql с сопоставлением utf8_general_ci, и для большинства моих поисков это хорошо. Но для одной модели и одного поля я хочу найти запись с регистром чувствительным . Как это сделать?

Ответы [ 2 ]

3 голосов
/ 24 декабря 2009

MySQL выполняет запрос без учета регистра, а не Ruby on Rails.

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

Вы можете создать столбцы базы данных, для которых требуется чувствительность к регистру

  1. Измените поля на BINARY или VARBINARY вместо CHAR и VARCHAR.
  2. Изменить поля, чтобы иметь двоичное сопоставление (например, latin1_bin)

-

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

Или вы можете изменить ваши запросы для использования оператора COLLATE:

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

0 голосов
/ 24 декабря 2009

Если вы всегда хотите искать в этом столбце с учетом регистра, лучше всего определить его с помощью сортировки utf8_bin

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...