gpt4 book ai didi

mysql - 将 mysql utf8-bin 字段转换为小写/大写

转载 作者:行者123 更新时间:2023-11-29 03:09:37 25 4
gpt4 key购买 nike

早上好

在此寻求一些建议。

在 utf8-bin 表中有一个用户名列。

想要对登录的用户名保持区分大小写,但希望对用户名的可用性执行不区分大小写的检查。

使用上有什么问题

CONVERT(`usrnm` USING latin1) #or other charset.

在处理中文或阿拉伯语之类的东西时?

欢迎任何提示/想法/评论。

最佳答案

CREATE TABLE users (id INT NOT NULL PRIMARY KEY, usrnm VARCHAR(20) COLLATE UTF8_BIN);

INSERT
INTO users
VALUES (1, 'Пользователь'); -- First letter in upper case

SELECT *
FROM users
WHERE usrnm = 'пользователь'; -- First letter in lower case, not returned


SELECT *
FROM users
WHERE usrnm COLLATE UTF8_GENERAL_CI = 'пользователь'; -- First letter in lower case, returned

请注意,如果要确保不区分大小写的唯一性,最好使列UTF8_GENERAL_CI 并声明它UNIQUE:

CREATE TABLE users (id INT NOT NULL PRIMARY KEY, usrnm VARCHAR(20) COLLATE UTF8_GENERAL_CI UNIQUE);

INSERT
INTO users
VALUES (1, 'Пользователь');

INSERT
INTO users
VALUES (2, 'пользователь'); -- unique violation

SELECT *
FROM users
WHERE usrnm = 'пользователь' COLLATE UTF8_BIN;

关于mysql - 将 mysql utf8-bin 字段转换为小写/大写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10295982/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com