1

フィールド col2 があり、値が caSEINseNSTiVe であるとします。以下のクエリを実行しても、col2=CD が得られません。LIKE と LIKE BINARY を試してみました。

SELECT col1,
CASE 
  WHEN col2 = 'CASEINSENSITIVE' THEN 'CD'
  ELSE col2
END 
FROM Table COLLATE utf8_general_ci

テーブルにはutf8_binの照合設定があります。設定を変更できません。utf8_bin をデフォルトのままにして、レポートを作成するときに utf8_general_ci に切り替える必要があります。

助言がありますか?

4

1 に答える 1

0

UPPER または LOWER 関数を次のように使用します。

SELECT col1,
CASE 
  WHEN UPPER(col2) = 'CASEINSENSITIVE' THEN 'CD'
  WHEN UPPER(col2) = 'ANYUPPERTEXT' THEN 'UP'
  WHEN LOWER(col2) = 'somelowertext' THEN 'LW'
  WHEN UPPER(col2) = UPPER('anytext that will also be UPPERed') THEN '??'
  ELSE col2
END 
FROM Table
于 2013-08-28T11:38:00.510 に答える