gpt4 book ai didi

mysql 枚举不区分大小写它匹配第一个不区分大小写

转载 作者:可可西里 更新时间:2023-11-01 06:33:01 26 4
gpt4 key购买 nike

我有 enum 字段,其中包含同一个字母的 lowercaseuppercase,当我尝试更新一行并更改它不起作用的值时。

这是重现问题的方式:

CREATE TABLE `mytable` (
`id` bigint(20) NOT NULL,
`name` varchar(100) NOT NULL,
`strategy` enum('g','G','r','R') NOT NULL DEFAULT 'g'
) ENGINE=InnoDB;

INSERT INTO `mytable` VALUES(1,'test','g');

现在,当我尝试将 strategyg 更改为 G 时,它不起作用:

UPDATE `mytable` SET `strategy`='G' WHERE id=1;

它返回:

Query OK, 0 rows affected (0.00 sec)
Rows matched: 1 Changed: 0 Warnings: 0

我使用MySQL 5.5,请帮助我

编辑:

正如@farshad 在他的评论中提到的,它使用第一个匹配项,如果我更改 enum 的顺序并使用 'G','g',... 它将始终使用 G 并且你不能将它改回 g

最佳答案

我的解决方案是将排序规则更改为 ASCII:

ALTER TABLE `your_table` CHANGE `strategy` ENUM('g', 'G', 'r', 'R')
CHARACTER SET ASCII COLLATE ascii_bin NOT NULL DEFAULT 'g';

关于mysql 枚举不区分大小写它匹配第一个不区分大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31827387/

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