如下图所示,想要从 roles 中查询 id4 的记录。
WechatIMG141539.jpg

方法一:

$users = DB::table('users')
    ->where('column_name', 'LIKE', '%,4,%')
    ->orWhere('column_name', 'LIKE', '4,%')
    ->orWhere('column_name', 'LIKE', '%,4')
    ->get();

方法二:

$users = DB::table('users')
    ->whereRaw("FIND_IN_SET('4', column_name) > 0")
    ->get();


号外:

还有一种巧妙的设计,就是在值入库时人为增加一个逗号,4,12,14,56,44,65,24,这种。在查询时,直接用以下语句:

$users = DB::table('users')
    ->where('column_name', 'LIKE', '%,4%')
    ->get();

注意这里where('column_name', 'LIKE', '%,4%')的条件,是不是很妙。

标签: FIND_IN_SET

添加新评论