我认为这个问题是由于你的MySQL版本启用了严格模式。请关闭严格模式并再次尝试。
要禁用,请按照如何在本地主机(xampp)上打开/关闭MySQL严格模式?进行操作。
STRICT_TRANS_TABLES负责设置MySQL的严格模式。
要检查严格模式是否已启用,请运行以下SQL语句:
SHOW VARIABLES LIKE 'sql_mode';
如果其中一个值是STRICT_TRANS_TABLES,那么严格模式就被启用了,否则就没有。在我的情况下,它给出了这样的结果
+--------------+------------------------------------------+
|Variable_name |Value |
+--------------+------------------------------------------+
|sql_mode |STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION|
+--------------+------------------------------------------+
因此,在我的情况下,严格模式被启用,其中一个值是STRICT_TRANS_TABLES。
要禁用严格模式,请运行以下SQL:
set global sql_mode='';
[或者任何模式,除了STRICT_TRANS_TABLES。例如:set global sql_mode='NO_ENGINE_SUBSTITUTION';]
要重新启用严格模式,请运行以下SQL:
set global sql_mode='STRICT_TRANS_TABLES';
如果你不想禁用严格模式(strict_mode),那么你必须修改你的SQL查询以符合SQL标准。
就像这样...
SELECT
aggregated_column,
aggregated_column,
aggregation_function(column),
aggregation_function(column),
aggregation_function(column)
FROM
TABLE
WHERE [CLAUSE]
GROUP BY [GROUP BY FIELD]
WHILE [CLAUSE]
ORDER BY
为了您的查询...
SELECT
contact_id,
min(mail_sent),
min(datetime),
max(datetime),
FROM `orders`
WHERE `mail_sent`='No'
AND `datetime` < DATE_SUB(NOW(), INTERVAL 15 MINUTE)
GROUP BY `contact_id`
ORDER BY `datetime` ASC;
如果有帮助,请告诉我。
contact_id的记录组中选择一个随机记录。所以这个查询毫无意义。 - AkinaSELECT contact_id FROM ...- Rick JamesSELECT DISTINCT contact_id FROM orders- Buttle Butkus