1

以下:

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

のようなfirst_nameを持つすべての人を連れてきます

  • ジョン
  • ジョン
  • jIm
  • JIM

クエリは大文字と小文字を区別しないモードで実行されるため、このようなあらゆる種類の組み合わせ。

大文字と小文字を区別するモードでこれを実行するにはどうすればよいですか?

私は試した:

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

しかし、それは機能しません。

列の照合を変更するように言わないでください。ユーザーの選択に応じて(大文字と小文字を区別して、または大文字と小文字を区別せずにクエリするために)、これを動的に設定したいと思います。

なんでも?

4

2 に答える 2

2

試す

select * from people 
where first_name COLLATE latin1_general_cs in ('John', 'Jim');
于 2012-04-19T08:09:03.413 に答える
1

のアイデアbinaryは良いですが、検索語の代わりに列名に適用することをお勧めします。このように、インデックスは使用されません。ただし、次の組み合わせを使用できます。

WHERE first_name in ('John','Jim') AND BINARY first_name in ('John','Jim')
于 2012-04-19T08:09:52.360 に答える