10

大文字と小文字を区別して IN 句を動作させる方法を知っている人はいますか? 文字列検索に COLLATE を LIKE で使用できることは確認しましたが、IN で使用できるかどうか、またはどのように使用できるかはわかりません。たとえば、次のようなことをしたい

SELECT * FROM pages_table WHERE topic IN ('Food','NightLife','Drinks')

そして、トピックが「食べ物」であるページを返したいのですが、トピックが「食べ物」であるページは返さないでください。これは現在、このクエリで発生しています。ありがとう。

4

2 に答える 2

9

他の例で見たように、実際に使用できます。

SELECT *
FROM pages_table
WHERE CAST(topic AS CHAR CHARACTER SET latin1)
        COLLATE latin1_general_cs IN ('Food','NightLife','Drinks')

これにより、文字セットが大文字と小文字の区別をサポートするものに変更され、列が照合されます(独自の文字エンコードによってはこれを行う必要がない場合があります)。

于 2012-11-12T23:56:35.513 に答える
9

BINARY演算子を使用できます。何かのようなもの:

SELECT *
FROM pages_table
WHERE CAST(topic AS BINARY) IN ('Food','NightLife','Drinks');

SQL フィドルのデモ

于 2012-11-13T07:27:03.330 に答える