tp5+exp通用查询
exp是英文单词:expression(表达式的缩写)
1、exp设置的条件,出现在SQL语句条件表达式中
2、以下是普通查询条件与exp查询条件之间的转换:
转换方法:中间参数改为:’exp’,第三个参数必须是字符串,是原来中间参数与第三参数的合体
1、相等
//1、相等
$result = Db::table('tp5_staff') -> where('id','=',1010) -> select(); // 原条件
$result = Db::table('tp5_staff') ->where('id','exp','=1010')->select(); //转换后
2、不相等
//2、不相等
$result = Db::table('tp5_staff') -> where('id','<>',1010)->select(); // 原条件
$result = Db::table('tp5_staff') -> where('id','exp','<>1010')->select(); //转换后
3、大于
//3、大于
$result = Db::table('tp5_staff') -> where('id','>',1010) -> select(); // 原条件
$result = Db::table('tp5_staff') -> where('id','exp','>1010') -> select(); //转换后
4、大于等于
//4、大于等于
$result = Db::table('tp5_staff') -> where('id','>=',1010) -> select(); // 原条件
$result = Db::table('tp5_staff') -> where('id','exp','>=1010') -> select(); //转换后
5、小于
//5、小于
$result = Db::table('tp5_staff') -> where('id','<',1010) -> select(); // 原条件
$result = Db::table('tp5_staff') -> where('id','exp','<1010') -> select(); //转换后
6、大于等于
//6、大于等于
$result = Db::table('tp5_staff') -> where('id','<=',1010) -> select(); // 原条件
$result = Db::table('tp5_staff') -> where('id','exp','<=1010') -> select(); //转换后
7、模糊查询, like 后字符串必须加引号,并且要与外层区分开
//7、模糊查询, like 后字符串必须加引号,并且要与外层区分开
$result = Db::table('tp5_staff') -> where('name','like','%张%') -> select(); // 原条件
$result = Db::table('tp5_staff') -> where('name','exp','like "%张%"') -> select(); //转换后
8、区间查询,第三参数就是出现在SQL条件中的字符串
//8、区间查询,第三参数就是出现在SQL条件中的字符串
$result = Db::table('tp5_staff') -> where('id','between',[1010,1020]) -> select(); // 原条件
$result = Db::table('tp5_staff') -> where('id','exp','between 1010 and 1020') -> select(); //转换后
9、集合查询,第三参数就是出现在SQL条件中的字符串
//9、集合查询,第三参数就是出现在SQL条件中的字符串
$result = Db::table('tp5_staff') -> where('id','in',[1005,1008,1020]) -> select(); // 原条件
$result = Db::table('tp5_staff')-> where('id','exp','in (1005,1008,1020)') -> select(); //转换后
10、空值查询,第三参数就是出现在SQL条件中的字符串
//10、空值查询,第三参数就是出现在SQL条件中的字符串
$result = Db::table('tp5_staff')->where('sex','not null')->select(); // 原条件
$result = Db::table('tp5_staff')->where('sex','exp','is not null')->select(); //转换后
11、不指定字段,使用函数拼接任意查询条件(tp5如何查询 以逗号间隔的数据)
$option[]= ['exp',Db::raw("FIND_IN_SET($id,hids)")];
$tags=Db::name('hospital_tags')->where($option)->select();
这里使用了FIND_IN_SET函数,目的是为了查询出hids字段中包含某个id的数据,hids字段中的值格式为 1,5,7
这种场景下的查询就特别好用
总结:
如果对原生SQL比较熟悉,用此方法,将所有查询条件归结到一种方式之下,便于记忆。
版权声明:
作者:admin
链接:http://blog.mryxh.cn/3612.html
文章版权归作者所有,未经允许请勿转载。
THE END