原始查询 CASE WHEN 在 Lumen 中不起作用?
Raw query CASE WHEN is not working in Lumen?
我想在 Lumen 中使用 CASE WHEN,但它 returns 消息“糟糕!发生错误。服务器返回了 500 内部服务器错误。”
//Working
$result = DB::table('Users')
->select(DB::raw('count(*) as user_count'))
->where('user_id', 'A1')
->get();
// Working
$result = DB::select('SELECT CASE WHEN user_status="new" THEN "New" ELSE "Expired" END AS new_status FROM Users WHERE user_id="A1"');
//Failed
$result = DB::table('Users')
->select(DB::raw('CASE WHEN user_status="new" THEN "New" ELSE "Expired" END AS new_status'))
->where('user_id', 'A1')
->get();
为什么失败了?
流明 7.0
谢谢。
请试试这个:
//Try
$result = DB::table('Users')
->select(DB::raw('CASE WHEN user_status=''new'' THEN ''New'' ELSE ''Expired'' END AS new_status'))
->where('user_id', 'A1')
->get();
//Try2
$result = DB::table('Users')
->select(DB::raw("(CASE WHEN (user_status='new') THEN 'New' ELSE 'Expired' END) AS new_status"))
->where('user_id', 'A1')
->get();
我想在 Lumen 中使用 CASE WHEN,但它 returns 消息“糟糕!发生错误。服务器返回了 500 内部服务器错误。”
//Working
$result = DB::table('Users')
->select(DB::raw('count(*) as user_count'))
->where('user_id', 'A1')
->get();
// Working
$result = DB::select('SELECT CASE WHEN user_status="new" THEN "New" ELSE "Expired" END AS new_status FROM Users WHERE user_id="A1"');
//Failed
$result = DB::table('Users')
->select(DB::raw('CASE WHEN user_status="new" THEN "New" ELSE "Expired" END AS new_status'))
->where('user_id', 'A1')
->get();
为什么失败了?
流明 7.0
谢谢。
请试试这个:
//Try
$result = DB::table('Users')
->select(DB::raw('CASE WHEN user_status=''new'' THEN ''New'' ELSE ''Expired'' END AS new_status'))
->where('user_id', 'A1')
->get();
//Try2
$result = DB::table('Users')
->select(DB::raw("(CASE WHEN (user_status='new') THEN 'New' ELSE 'Expired' END) AS new_status"))
->where('user_id', 'A1')
->get();