java - mysql中有没有办法区分两个相同但大小写字母不同的字符串

标签 java mysql string uppercase lowercase

我有一个我编写的 java 程序,它将创建一个 5 位数字的字符串并将其添加到 mysql 数据库中。生成的字符串将是数字 1-9 字母 a-z 和 A-Z 的所有组合

00000 ... 00009 0000a ... 0000z 0000A ... 0000Z 00010 ... 00019

等等

我的问题是,当将这些值添加到数据库时,它不会添加 0000A,因为 0000a 已经存在了

例如如果我

INSERT INTO `mytable`(`mycolumn`) VALUES ("00000");

INSERT INTO `mytable`(`mycolumn`) VALUES ("0000a");

INSERT INTO `mytable`(`mycolumn`) VALUES ("0000A");

出现在我的数据库中的唯一值是 00000 和 0000a

有没有办法让 mysql 在两者之间做出这种区分,这样我就可以拥有看起来唯一的字符串

最佳答案

MySql 字符串是 case sensitive by default .

您可以在 MYCOLUMN 字段中使用区分大小写的排序规则,例如 utf8_bin:

CREATE TABLE MYTABLE (
    ID BIGINT AUTO_INCREMENT, 
    // other fields...

    MYCOLUMN VARCHAR(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL UNIQUE, 
    PRIMARY KEY(ID)
);

关于java - mysql中有没有办法区分两个相同但大小写字母不同的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12992621/

相关文章:

php - 如何在语句中使用爆炸拆分数组的所有结果

用于 SSH SOCKS 绑定(bind)(动态端口转发)的 Java 库?

php - 页面上的 MySQL 语法错误代码

php - 匿名用户的 Drupal 权限

MySql:获得比百分之一秒更精确的时间测量

c# - 在 C# 中将日期添加到 DateTime

java - 如何使用jOOQ用自定义函数解析SQL字符串?

java - 在 Java 中使用 BufferedReader 读取整个字符流

Java邮件类

python - 包含字典、文本、日期时间和整数的 JSON 转储大列表给出 "TypeError: ' str' 不支持缓冲区接口(interface)"