Mysql 指定的数字在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

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 :-
   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查询给出的错误号无效显示完整且未更改的错误消息。