完整错误提示
Error: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM xxx_rank_top WHERE create_date=20250303 AND rank_type=1' at line 1")
DDL
CREATE TABLE `xxx_rank_top` (
`id` int unsigned NOT NULL AUTO_INCREMENT,
`create_date` int NOT NULL COMMENT '第几周,每周的周一',
`rank_type` int NOT NULL COMMENT '榜单类型',
`rank` int NOT NULL COMMENT '排名',
`user_id` int NOT NULL COMMENT '用户id',
`created_at` datetime DEFAULT NULL,
`updated_at` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `create_date_2` (`create_date`,`rank_type`,`user_id`),
UNIQUE KEY `create_date` (`create_date`,`rank_type`,`rank`),
KEY `user_id` (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
sql 语句
SELECT user_id,rank FROM xxx_rank_top WHERE create_date=20250303 AND rank_type=1;
错误的原因是 rank 是 mysql 的保留关键词,没有用 反引号 包起来,修改后
SELECT user_id, `rank` FROM xxx_rank_top WHERE create_date=%s AND rank_type=%s;