在mysql 中:查询数据,通过if()判断可以对不符合要求的数据进行修改。如
select if(pdi,pid,10) as pid ,name from user; 这sql的意思是再查询的时候对 pid列进行判断,看他的值是否为真,如果非真,则返回个默认值10。
mysql中可以在count()中写很多判断操作如
select count(pid = 5 OR NULL) from user; 这条语句数判断pid等于5 的有多少条
select count(distinct pid) from user; 这条语句数判断pid等于5 的有多少条
针对上面的sql在tp中如何通过Db类来写呢?
Db::table('user')->field('if(pdi,pid,10) as pid ,name')->limit(10)->select();
在count()中的OR操作ADN操作等都无法执行。(可能是我的姿势不对吧)
count的去重操作可以
Db::table('tp_ad')->count('distinct pid');
针对列的操作我们可以在field中操作
可以看出来,大部分跟mysql的写法都没有差别。在mysql中咋写在tp中一样咋写。就是有可能不支持。