2012-04-19 1 views
0

Следующая:Могу ли я использовать оператор IN для запроса данных в зависимости от случая в MySQL?

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

принесет всем людям, которые имеют first_name как

  • Джон
  • джон
  • Джимом
  • ДЖИМ

и всякие такие комбинации потому что запрос выполняется в случае нечувствительного режима.

Как я могу выполнить этот запуск в чувствительном к регистру режиме?

Я пробовал:

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');