我正在尝试运行此查询
$tableDate = DB::select('SELECT (DATE_FORMAT(created_at,"%m-%d-%Y")) as
dateTaken FROM `test_answers`WHERE user_id= '.$id.' GROUP BY (test_id)
');
但是它给我这个错误
SQLSTATE[42000]: Syntax error or access violation: 1055 'mte30.test_answers.created_at' isn't in GROUP BY (SQL: SELECT (DATE_FORMAT(created_at,"%m-%d-%Y")) as dateTaken FROM test_answers WHERE user_id= 2 GROUP BY (test_id) )
我在 PHPMyAdmin 上试过了,它成功了。 有人能告诉我为什么它不能使用 Eloquent 工作吗?
谢谢
最佳答案
这在严格模式下不起作用的原因是因为您没有在查询中指定要使用哪个 created_at。如果您使用 GROUP BY 并且选择的列未分组或聚合,您可能不会收到正确的数据。
您在 test_answers 中有多行,但 MySQL 不知道您关心的是哪一行的 created_at。您可以通过简单地告诉 MySQL 返回哪个 created_at 来解决这个问题,比如 MAX(created_at)
选择最近的,或者 MIN(created_at)
选择最旧的。
关于mysql - 为什么我不能运行这个查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54448218/