Mysql 指定的数字在sql查询中无效错误
sql查询给出错误数字无效 查询:-Mysql 指定的数字在sql查询中无效错误,mysql,sql,Mysql,Sql,sql查询给出错误数字无效 查询:- select st.id ,st.name from student st inner join course co on st.COURSE_FK = co.course_id where(st.id="DV001" and co.course_id="1001"); Student table :- id(String) name(String) course :- cou
select st.id ,st.name from student st
inner join course co on st.COURSE_FK = co.course_id
where(st.id="DV001" and co.course_id="1001");
Student table :-
id(String)
name(String)
course :-
course_id(String)
学生表
CREATE TABLE `student` (
`id` varchar(255) NOT NULL,
`name` varchar(45) DEFAULT NULL,
`COURSE_FK` varchar(45) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `fk_student_1_idx` (`COURSE_FK`),
CONSTRAINT `fk_student_1` FOREIGN KEY (`COURSE_FK`) REFERENCES `course` (`course_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
CREATE TABLE `course` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(45) NOT NULL,
`course_id` varchar(45) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `course_id_UNIQUE` (`course_id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
课程表
CREATE TABLE `student` (
`id` varchar(255) NOT NULL,
`name` varchar(45) DEFAULT NULL,
`COURSE_FK` varchar(45) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `fk_student_1_idx` (`COURSE_FK`),
CONSTRAINT `fk_student_1` FOREIGN KEY (`COURSE_FK`) REFERENCES `course` (`course_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
CREATE TABLE `course` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(45) NOT NULL,
`course_id` varchar(45) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `course_id_UNIQUE` (`course_id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
数据
INSERT INTO `test`.`course` (`id`, `name`, `course_id`) VALUES (NULL, 'C1', 'C1');
INSERT INTO `test`.`course` (`id`, `name`, `course_id`) VALUES (NULL, 'C2', 'C2');
INSERT INTO `test`.`student` (`id`, `name`, `COURSE_FK`) VALUES ('S1', 'S1', 'C1');
INSERT INTO `test`.`student` (`id`, `name`, `COURSE_FK`) VALUES ('S2', 'S2', 'C2');
INSERT INTO `test`.`student` (`id`, `name`, `COURSE_FK`) VALUES ('S3', 'S3', 'C1');
根据您给出的查询
select st.id ,st.name from student st
inner join course co on st.COURSE_FK = co.course_id
where(st.id="S1" and co.course_id="C1");
结果
# id, name
'S1', 'S1'
----------------------------------------------------------------------------------
结论:当您输入query时,这个错误不会出现什么是:param1和:param2?您是从Workbench运行这个精确的代码吗?这行不通。如果这是PHP编写的某种语句,请包含完整的PHP代码。只是一个猜测。st.id定义为int?将双引号替换为单引号。sql查询给出的错误号无效显示完整且未更改的错误消息。