数据格式
数据表中有个字段存的是以逗号分割的分类ID数据,比如: 1,2,3,4,5
需要找出某个分类下的数据列表,即字段值中含有对应的分类ID,比如 2
MySQL 原生语句
SELECT * FROM `frame_ask` WHERE FIND_IN_SET (18, c_id);
thinkphp5.1 以表达式快捷方法查询
$AskModel->whereExp('', 'FIND_IN_SET(:cid, c_id)', ['cid'=>$cid])->select();
thinkphp5.1 数组查询方法
$where = [
['status', '=', 1],
['is_del', '=', 0]
];
$cid = 2;
$where[] = ['', 'exp', Db::raw("FIND_IN_SET($cid, c_id)")];
$AskModel->where($where)->select();
最终生成的SQL语句
SELECT * FROM `frame_ask` WHERE `status` = 1 AND `is_del` = 0 AND ( FIND_IN_SET(18, c_id) )