能用sql语句解决的就不用PHP
1,是与非的判断IF表达式
例:SELECT *,if(is_type=1,"ok","no") as type FROM `cmf_user` where create_time>'2022-10-19 00:00:01'
判断当is_type等于1时,状态为ok否则就是no
2,数据统计
$track_data = Db::name('trackRecord')->field('user_id,count(IF(track_type=54,true,null)) as xin_tel,count(IF(track_type=55,true,null)) as hui_tel,count(IF(track_type=56,true,null)) as yue_tel')->where('user_id in ('.$id_data.')')->group('user_id')->select()->toArray();
统计指定条件下track_type分别等于 54,55,56 的数量
3,在thinkphp中,distinct()方法
例:SELECT DISTINCT linkName FROM cmf_user_data
在thinkphp中,distinct()方法用于去除重复的值,能够返回唯一不同的值。
用法为“$Model->distinct(布尔值参数)->field('name')->select();”。
4,mysql替换某个字段的值
使用 REPLACE () 函数
REPLACE(phone,'136','158') 将手机号136开头的替换成158
SELECT s_id, s_name, REPLACE(phone,'136','158') FROM student;
把手机号前四位替换为*
update insurance_data set phone = REPLACE(phone,substring(car_number,1,4),'****')
5,Case when 的用法
Case函数(Case搜索函数): 判断表达式的真假,如果为真,返回结果;如果为假,返回else值;如果未定义else值,则返回空值(使用条件确定返回值);
简单Case表达式的作用是: 使用表达式确定返回值:
select id,name,(case sex
when '1' then '男'
when '2' then '女'
else '其他' end)
from student;
6,mysql查询时间戳转换成日期格式
SELECT FROM_UNIXTIME(create_date,'%Y-%m-%d') as create_date FROM test