sqle
sqle copied to clipboard
MySQL规则,联合索引,必须使用联合索引的首字段误报错
çæ¬ä¿¡æ¯ï¼Versionï¼
3.2409.0
é®é¢æè¿°ï¼Describeï¼
MySQLè§å,èåç´¢å¼,å¿ é¡»ä½¿ç¨èåç´¢å¼çé¦å段误æ¥é
æªå¾ææ¥å¿ï¼Logï¼
å¦ä½å¤ç°ï¼To Reproduceï¼
- åå¨å¦ä¸DDL
CREATE TABLE `user_1`
(
`id` int NOT NULL AUTO_INCREMENT,
`name` INT NOT NULL,
`age` varchar(20) NOT NULL,
`desc` varchar(100) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `IDX_UID_CHANNEL` (`name`, `age`),
KEY `idx_PARTNER_UID_CHANNEL` (`desc`, `age`)
) ENGINE = InnoDB
AUTO_INCREMENT = 2
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_general_ci;
- å®¡æ ¸è¯¥æ¡SQL
SELECT *
FROM user_1
WHERE name = 't'
AND age = 12;
- å¤ç°
é®é¢åå
表user_1åå¨ä¸¤ä¸ªèåç´¢å¼,两个èåç´¢å¼ç¬¬äºä¸ªåæ®µé½æ¯ age åæ®µ,èåç´¢å¼æå·¦ä¸å,å¤ç°çSQLè½æ»¡è¶³IDX_UID_CHANNELç´¢å¼,使¯ä¸æ»¡è¶³idx_PARTNER_UID_CHANNELèåç´¢å¼
UNIQUE KEY `IDX_UID_CHANNEL` (`name`, `age`),
KEY `idx_PARTNER_UID_CHANNEL` (`desc`, `age`)