我不确定这是什么错误!
#1292 - Truncated incorrect DOUBLE value:
我没有双值字段或数据!
我浪费了整整一个小时试图解决这个问题!
这是我的查询
INSERT INTO call_managment_system.contact_numbers (account_id, contact_number, contact_extension, main_number, created_by) SELECT ac.account_id, REPLACE(REPLACE(REPLACE(REPLACE(ta.phone_number, '-', ''), ' ', ''), ')', ''),'(','') AS Phone, IFNULL(ta.ext, '') AS extention, '1' AS MainNumber, '2' AS created_by FROM cvsnumbers AS ta INNER JOIN accounts AS ac ON ac.company_code = ta.company_code WHERE LENGTH(REPLACE(REPLACE(REPLACE(REPLACE(ta.phone_number, '-', ''), ' ', ''), ')', ''),'(','') ) = 10
这是我要显示结果的表的show create表
CREATE TABLE `contact_numbers` ( `number_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `account_id` int(10) unsigned NOT NULL DEFAULT '0', `person_id` int(11) NOT NULL DEFAULT '0', `contact_number` char(15) NOT NULL, `contact_extension` char(10) NOT NULL DEFAULT '', `contact_type` enum('Primary','Direct','Cell','Fax','Home','Reception','Office','TollFree') NOT NULL DEFAULT 'Primary', `contact_link` enum('Account','PDM','Other') NOT NULL DEFAULT 'Account', `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '0 = inactive, 1=active', `main_number` tinyint(1) NOT NULL DEFAULT '0' COMMENT '1 = main phone number', `created_on` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `created_by` int(11) NOT NULL, `modified_on` datetime DEFAULT NULL, `modified_by` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`number_id`), KEY `account_id` (`account_id`), KEY `person_id` (`person_id`) ) ENGINE=InnoDB AUTO_INCREMENT=534 DEFAULT CHARSET=utf8
此消息表示您正在尝试比较WHEREor ON子句中的数字和字符串。在您的查询中,唯一可能发生的地方是ON ac.company_code = ta.company_code;。确保它们具有相似的声明,或使用显式CAST将数字转换为字符串。
WHERE
ON
ON ac.company_code = ta.company_code
CAST
如果关闭strict模式,则错误应变为警告。
strict