JSON SQL字段和JSON_CONTAINS如何使用Laravel查询生成器执行原始SQL查询


JSON SQL field and JSON_CONTAINS how execute raw SQL query with Laravel query builder

我有一个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

whereRaworWhereRaw方法可用于在查询中注入原始的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);