簡體   English   中英

mysql大小寫不敏感的問題,即使使用COLLATE utf8_general_ci

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM