[英]mysql case insensitive issue even with COLLATE utf8_general_ci
假設我有一個字段col2,並且值為caSEINseNSItiVe。 在下面運行此查詢不會給我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_general_ci,同時保持utf8_bin為默認值。
有什么建議么?
像這樣使用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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.