MYSQL 修改字段编码
utf8mb4_general_ci(utf8mb4_general_case_insensitive_ci):
这是旧版的字符集和排序规则,用于比较和排序字符。它在进行字符比较时不区分大小写,但是对于某些语言和字符,它可能会产生不准确的排序结果。这是因为它不考虑字符的特定语义和上下文。
utf8mb4_0900_ai_ci(utf8mb4_0900_as_cs_ci):
这是 MySQL 8.0.0 版本及以后引入的新版字符集和排序规则。它是一个更为准确和语义化的排序规则,不仅会考虑字符的大小写,还会考虑字符的语义信息。这就意味着在某些情况下,它能够产生更符合预期的排序结果,特别是对于一些特殊字符、多语言文本等。
SELECT *,CONCAT(
'ALTER TABLE ', tableName,
' MODIFY ', columnName, ' VARCHAR(', columnLength, ') CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ',
' DEFAULT ', IFNULL(QUOTE(columnDefault), "''"),
' COMMENT ', IFNULL(QUOTE(columnComment), "''"), ';'
) FROM (
SELECT table_name AS tableName, column_name AS columnName, character_maximum_length AS columnLength, column_default AS columnDefault, column_comment AS columnComment
FROM information_schema.columns
WHERE table_schema = 'db_performance_plus'
AND data_type = 'varchar'
AND character_set_name = 'utf8'
)T;