"Truncated incorrect DOUBLE value" 在 MySQL

"Truncated incorrect DOUBLE value" in MySQL

正在尝试 运行 下面的查询,但显示错误:

Truncated incorrect DOUBLE value

任何人都可以解释我,我错过了什么吗?

SELECT exam_type_name
FROM exam_types 
WHERE exam_type_id IN (SELECT ids FROM exam WHERE id = 37);

上面的子查询returns字符串36,37,39,40

初级Table定义:

CREATE TABLE  `careerturn_db`.`exam_types` (
  `exam_type_id` int(11) NOT NULL AUTO_INCREMENT,
  `exam_type_name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`exam_type_id`)
) ENGINE=InnoDB AUTO_INCREMENT=52 DEFAULT CHARSET=latin1;

子查询Table定义:

CREATE TABLE  `careerturn_db`.`exam` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `ids` varchar(45) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=38 DEFAULT CHARSET=latin1;

错误:

您可以使用 FIND_IN_SET 尝试以下操作:

SELECT exam_type_name
FROM exam_types e
WHERE FIND_IN_SET(exam_type_id, (SELECT ids FROM exam WHERE id = 37)) > 0;

原始查询的错误被抛出,因为您试图在看起来像 DOUBLE 值的字符串中搜索整数值。但是 MySQL 无法将此值转换为具有多个 ,.

DOUBLE