Tôi không chắc lỗi này là gì!Mã lỗi 1292 - Cắt ngắn giá trị DOUBLE không chính xác - Mysql
#1292 - Truncated incorrect DOUBLE value:
Tôi không có trường hoặc dữ liệu giá trị kép!
Tôi đã lãng phí cả một giờ cố gắng tìm ra điều này!
đây là câu hỏi của tôi
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
ở đây là chương trình của tôi tạo bảng cho bảng mà kết quả sẽ vào
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
Theo [báo cáo lỗi này] (http://bugs.mysql.com/bug.php?id=63112) thông báo đến từ việc so sánh một cột chuỗi với một số nguyên, vì cả hai đều được chuyển thành 'double' để so sánh. 'Ac.company_code' và' ta.company_code' được khai báo như thế nào? – Barmar
Xem thêm http://bugs.mysql.com/bug.php?id=46641 nơi áp phích đề xuất rằng thông báo lỗi này được ghi lại thành "WHERE so sánh giữa các cột số và không phải là số không được phép" – Barmar
Cả hai cột đó là int (11) và không phải là chuỗi! – Mike