mysql 常用函数,基本使用

1:选中排除
表1 连接表2 表3
获取选中表1中部分选中表3 的部分 并且设置选中状态
select t1.*,if(t2中t3id=t1.id,1,0)as checked from t1
lefet join t3 on t1.id=t2.t1中id

eg: 角色 与功能点
 

SELECT
    t0.*,IF(t1.role_id = '4d4023a7-db30-11e7-aae9-000c29dce73b',1,0) as is_checked
FROM
    t_boss_function_point t0
LEFT JOIN t_boss_role_function_point_relation t1 ON t1.function_point_id = t0.id

 



2:表中字段组合 CONCAT(str1,str2,...) :字符串拼接


3: GROUP_CONCAT() 多数据组合成一起 (在方法内还可以写sql distinct,order by 排序,SEPARATOR 是一个字符串值,它被用于插入到结果值中。缺省为一个逗号 (","),可以通过指定 SEPARATOR "" 完全地移除这个分隔符)

GROUP_CONCAT(' -> ',IFNULL(T2.AliasName,T2.`Name`) ORDER BY T1.lvl DESC SEPARATOR '')

4:if,和ifnull的使用
if(条件1,条件1成立输出他,条件1不成立输出他)

ifnull(字段,字段不为null输出它,字段为null输出它) ps:如果字段为空字符串判断为true

5: DISTINCT 去除掉重复字段

6: not exists 不在条件范围内 取反 多用于子查询反查
  not in 基本相同
7 反向递归查询 展示出子类上面所有的父级信息

    SELECT  T2.ID,T2.Nname  
    FROM ( 
        SELECT 
            @r AS _id, 
            @stop:=@stop+if(@r=2,1,@stop) as stop,
            (SELECT @r := ParentID FROM BusinessPartCategory WHERE id = _id) AS ParentID, 
            @l := @l + 1 AS lvl 
        FROM 
            (SELECT @r := '填写对应的子类id', @l := 0, @stop:=0) vars, 
            BusinessPartCategory h 
        WHERE @stop < 1) T1 
    JOIN BusinessPartCategory T2 
    ON T1._id = T2.ID 

 


 

转载于:https://www.cnblogs.com/lt-com/p/8507659.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值