我尝试按列值对结果排序,但它不起作用
$users = Comment::select([
'id',
'comment',
'user_name',
'product_id',
'rating',
'country',
'status',
'pin',
'created_at',
])->where('shop_name',$shop)->where('product_id', $id)->with('images')->orderByRaw("IF(product_url = 'customer') DESC")->orderByRaw("product_url = manually ASC")->orderBy('pin', 'desc')->orderBy('rating', 'desc')->with('pages')->get();
我添加了这个代码
->orderByRaw("IF(product_url = 'customer') DESC")
我得到这个错误
“sqlstate[42000]:语法错误或访问冲突:1064您的sql语法有错误;请查看与您的mysql服务器版本对应的手册,以获取使用near')desc,product\u url=manually asc, pin
描述, rating
第1行的描述(sql:select) id
, comment
, user_name
, product_id
, rating
, country
, status
, pin
, created_at
从 comments
哪里 shop_name
=和 product_id
=order by if(product\U url='customer')desc,product\U url=manually asc, pin
描述, rating
描述)
1条答案
按热度按时间vxf3dgd41#
mysql数据库
IF
函数有三个参数。此表达式无效:
因为只有一个参数提供给
IF()
功能。我们可以这样做:
这相当于更符合ansi标准
mysql速记也可以
相当于