截断不正确的 DOUBLE 值:'' 来自 SUM() on DATATYPE decimal(10,2)
Truncated incorrect DOUBLE value: '' from SUM() on DATATYPE decimal(10,2)
初次遇到Warning |第 1292 章截断了不正确的 DOUBLE 值:“”运行 此查询
SELECT DATE(Timestamp), COUNT(*), SUM(Amount) FROM remote_tickets WHERE DATE(Timestamp) = '2019-10-31' AND CCTransactionId != '';
但是当我发出
时也会出现警告
SELECT COUNT(*) FROM remote_tickets WHERE CCTransactionId != '';
但不
SELECT COUNT(*) FROM remote_tickets;
架构是
CREATE TABLE `remote_tickets` (
`TicketId` int(11) NOT NULL,
`DeviceId` int(11) NOT NULL,
`Amount` decimal(10,2) NOT NULL,
`CustomerCategoryName` varchar(100) NOT NULL,
`PaymentType` varchar(6) NOT NULL,
`CCTransactionId` int(11) DEFAULT NULL,
`Timestamp` datetime NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
我如何追踪这个问题?是坏数据吗?也许值得一提的是,在发出 SHOW WARNINGS
.
时,我收到了来自 mysqlmonitor 的警告,但没有来自 PHPMyAdmin 的警告
您的 table 将 CCTransactionId
定义为整数,但您将其与查询的 WHERE
子句中的字符串 (''
) 进行比较。因此,您收到警告。因此,没有 WHERE
子句的查询不会引发警告。
你可能想要:
WHERE CCTransactionId IS NOT NULL
或者也许:
WHERE CCTransactionId != 0
初次遇到Warning |第 1292 章截断了不正确的 DOUBLE 值:“”运行 此查询
SELECT DATE(Timestamp), COUNT(*), SUM(Amount) FROM remote_tickets WHERE DATE(Timestamp) = '2019-10-31' AND CCTransactionId != '';
但是当我发出
时也会出现警告SELECT COUNT(*) FROM remote_tickets WHERE CCTransactionId != '';
但不
SELECT COUNT(*) FROM remote_tickets;
架构是
CREATE TABLE `remote_tickets` (
`TicketId` int(11) NOT NULL,
`DeviceId` int(11) NOT NULL,
`Amount` decimal(10,2) NOT NULL,
`CustomerCategoryName` varchar(100) NOT NULL,
`PaymentType` varchar(6) NOT NULL,
`CCTransactionId` int(11) DEFAULT NULL,
`Timestamp` datetime NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
我如何追踪这个问题?是坏数据吗?也许值得一提的是,在发出 SHOW WARNINGS
.
您的 table 将 CCTransactionId
定义为整数,但您将其与查询的 WHERE
子句中的字符串 (''
) 进行比较。因此,您收到警告。因此,没有 WHERE
子句的查询不会引发警告。
你可能想要:
WHERE CCTransactionId IS NOT NULL
或者也许:
WHERE CCTransactionId != 0