数据库sql分析:
多表连接分为:内连接,外连接
外连接:分为左连接、右连接
关键字用法:
IN ,遍历字段,相当于python 的in关键字
JOIN 连接
OR, AND,或者 并且
ORDER BY:可以定义排序字段
GROUP BY:分组,根据某一个或多个字段分组
distinct:,某一个字段去重
例如:
SELECT
count( DISTINCT a.id)
FROM
table
WHERE
1 = 1
in 包含
not in 不包含
exists 存在某条记录
LIMIT(5,5) 限制数量,从角标5开始,后面5条数据
desc 降序
asc 升序
unino 用来查询额外的数量进行组合,
TO_DAYS(NoW()) :将今天的实现转化为天数,可用于比较
DATE_FORMAT( date, '%Y%m' ) 格式化时间,可以判断年月是否相等
LIKE CONCAT(str,str,str,...) 可动态模糊匹配
case
when 表达式 then 查询语法
...
else 查询语法
end 条件判断法,可以用来判断条件不同表查询
if(a.value is not null,a.value,b.value) as value 判断,取不同的值
having , count 和GROUP BY 组合可以判断某个值在表中有多条记录
例如:
SELECT
*,
count(a.ATT_ID) as attId
FROM
crm.ccc_att_detail a
WHERE
1 = 1
GROUP BY
a.ATT_ID
HAVING count(attId)>1
mysql:列转行
GROUP_CONCAT( depart_name ORDER BY org_code SEPARATOR '/' )
depart_name 需要后边的字段 /符号隔开
order by 后面的字段为排序字段
SELECT org_code, depart_name, ( SELECT GROUP_CONCAT( depart_name ORDER BY org_code SEPARATOR '/' ) FROM `sys_depart` WHERE sd.org_code LIKE concat( org_code, '%' ) AND parent_id IS NOT NULL ) AS depart_full_name FROM `sys_depart` sd WHERE sd.org_code = #{orgCode}
行专列:
SUBSTR(house_no, 1, 4) AS column;
mybatisPlus xml 转义:
转义字符:
<= 转义 <= >= 转义 >=
XML <![CDATA[ ]]> :它是一种可以忽略掉如< , &等这种符号。有一种转义的效果。
[html] view plain copy
<if test="null!=s and ''!=s">
<![CDATA[ and s < '3' ]]>
</if>