我有一个json数组:
users => json_encode(array[1,2,3,4]);
所以我尝试了这个查询:
SELECT * FROM user_conversations WHERE JSON_CONTAINS(users, JSON_ARRAY(1))
和它的工作,但我不知道如何使这个查询在Laravel
From Laravel Database: Query Builder Raw Methods
whereRaw/orWhereRaw
whereRaw和orWhereRaw方法可用于在查询中注入原始的where子句。这些方法接受一个可选的绑定数组作为第二个参数:
$orders = DB::table('orders') ->whereRaw('price > IF(state = "TX", ?, 100)', [200]) ->get();
所以我用whereRaw
方法解决了我的问题:
DB::table('user_conversations')->whereRaw('JSON_CONTAINS(users, JSON_ARRAY(1))')->orderBy('created_at', 'desc')->paginate(5);