截断不正确的 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