似乎由于MySQL 5.7或更高版本的更改,默认情况下启用了SQL模式ONLY_FULL_GROUP_BY,因此我使用的旧代码如下所示:
Table::where('name', 'LIKE', '%'.$search_str.'%')
->groupBy('name')
->get();
现在抛出错误......
SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column
我尝试以各种方式更新我的代码以尝试使其工作但没有运气。
这就是我目前所拥有的:
Table::where('name', 'LIKE', '%'.$search_str.'%')
->selectRaw('name, ANY_VALUE(id), ANY_VALUE(col_a), ANY_VALUE(col_b), ANY_VALUE(col_c), ANY_VALUE(col_d)')
->groupBy('name')
->get();
这不会引发任何错误,但缺少列数据。
我也试过了:
Table::where('name', 'LIKE', '%'.$search_str.'%')
->groupBy('name')
->groupBy('id')
->get();
根据'name'不返回不同的行。它只会返回所有内容。
如何在Laravel Eloquent或原始MySQL中执行此操作?
答案 0 :(得分:0)
groupBy()方法按给定键对集合项目进行分组。你应该先收集一个集合:
Table::where('name', 'LIKE', '%'.$search_str.'%')
->get()
->groupBy('name');
答案 1 :(得分:0)
在import { Observable } from 'rxjs/Rx';
import 'rxjs/add/operator/finally';
// ...
this.httpService.getRequest()
.finally(() => {
// Execute after graceful or exceptionally termination
console.log('Handle logging logic...');
})
.subscribe (
result => {
// Handle result
console.log(result)
},
error => {
this.errors = error;
},
() => {
// No errors, route to new page
}
);
文件中将#!/usr/bin/python2
ylist = [1, 2, 3, 4, 5, 6, 7, 9, 2, 5, 3, -1]
print ylist
target = int(raw_input("enter the target number"))
for i in xrange(len(ylist)):
sno = target-ylist[i]
for j in xrange(i+1, len(ylist)):
if ylist[j] == sno:
print ylist[i], ylist[j]
更改为config/database.php
并尝试
'strict' => true,
我不确定你是否在寻找这个。