tp5+exp通用查询

2024-08-07 16:29:10 浏览数 (2)

exp是英文单词:expression(表达式的缩写)

1、exp设置的条件,出现在SQL语句条件表达式中

2、以下是普通查询条件与exp查询条件之间的转换:

转换方法:中间参数改为:’exp’,第三个参数必须是字符串,是原来中间参数与第三参数的合体

1、相等
代码语言:javascript复制
//1、相等
$result = Db::table('tp5_staff') -> where('id','=',1010) -> select();   // 原条件
$result = Db::table('tp5_staff') ->where('id','exp','=1010')->select();  //转换后
2、不相等
代码语言:javascript复制
//2、不相等
$result = Db::table('tp5_staff') -> where('id','<>',1010)->select();   // 原条件
$result = Db::table('tp5_staff') -> where('id','exp','<>1010')->select();  //转换后
3、大于
代码语言:javascript复制
//3、大于
$result = Db::table('tp5_staff')  -> where('id','>',1010) -> select();   // 原条件
$result = Db::table('tp5_staff')  -> where('id','exp','>1010') -> select();  //转换后
4、大于等于
代码语言:javascript复制
//4、大于等于
$result = Db::table('tp5_staff') -> where('id','>=',1010) -> select();   // 原条件
$result = Db::table('tp5_staff') -> where('id','exp','>=1010') -> select();  //转换后
5、小于
代码语言:javascript复制
//5、小于
$result = Db::table('tp5_staff') -> where('id','<',1010) -> select();   // 原条件
$result = Db::table('tp5_staff') -> where('id','exp','<1010') -> select();  //转换后
6、大于等于
代码语言:javascript复制
//6、大于等于
$result = Db::table('tp5_staff') -> where('id','<=',1010) -> select();   // 原条件
$result = Db::table('tp5_staff') -> where('id','exp','<=1010') -> select();  //转换后
7、模糊查询, like 后字符串必须加引号,并且要与外层区分开
代码语言:javascript复制
//7、模糊查询, like 后字符串必须加引号,并且要与外层区分开
$result = Db::table('tp5_staff') -> where('name','like','%张%') -> select();   // 原条件
$result = Db::table('tp5_staff') -> where('name','exp','like "%张%"') -> select();  //转换后
8、区间查询,第三参数就是出现在SQL条件中的字符串
代码语言:javascript复制
//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条件中的字符串
代码语言:javascript复制
//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条件中的字符串
代码语言:javascript复制
//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(tags=Db::name('hospital_tags')->where(

这里使用了FIND_IN_SET函数,目的是为了查询出hids字段中包含某个id的数据,hids字段中的值格式为 1,5,7

这种场景下的查询就特别好用

总结:

如果对原生SQL比较熟悉,用此方法,将所有查询条件归结到一种方式之下,便于记忆。

(adsbygoogle = window.adsbygoogle || []).push({});

0 人点赞