[top-think/think][6.0.12 LTS]Db where生成的语句有误,指定in还是变成=

2023-12-12 607 views
3

Db::table('think_user') ->where('id', 'IN', function ($query) { $query->table('think_profile')->where('status', 1)->field('id'); }) ->select();

这个查询的不是in,是=,怎么解决

同样 Db::table('think_user') ->where('id', 'IN', '(select user_id from think_vips)') ->select();

生成的语句为 select from think_user where id = (select user_id from think_vips) 预期的则是 select from think_user where id in (select user_id from think_vips)

回答

8

这个写法建议用whereExp方法查询 in查询默认会自动识别 如果不是数组 就不用会用in