赞
踩
select --查询结果字段 from 表名 where id="aaa" group by --按那个字段分组 having name like '%a%' --分组后过滤,带a的 order by 列名 desc --desc降序排列;asc升序排列 limit 0,100; --前100行
创建时间最新一条数据
select id,org_id FROM test_1 where create_time=
(select max(create_time) from test_1)
创建时间最新一百条数据
select id,org_id FROM test_1 ORDER BY create_time desc LIMIT 0,100
1.IFNULL(er1,er2)用法,假如e1不为NULL,则 IFNULL() 的返回值为e1; 否则其返回值为 e2。
select id,ifnull(name,0)
2.ISNULL(e) 的用法,如e为null,那么isnull() 的返回值为 1,否则返回值为 0。
select id,isnull(name)
3.NULLIF(e1,e2)用法,如果e1 = e2 成立,那么返回值为NULL,否则返回值为e1。
select id,nullif(a.name,b.name)
LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。
SELECT column_name(s)
FROM table_name1
LEFT JOIN table_name2
ON table_name1.column_name=table_name2.column_name
内连接—在表中存在至少一个匹配时,INNER JOIN 关键字返回行。
SELECT column_name(s)
FROM table_name1
INNER JOIN table_name2
ON table_name1.column_name=table_name2.column_name
1.简单case函数
当unit等于1时,执行f1语句,等于2时,执行f2语句,否则执行默认值
select id,
case unit
when 1 then
ifnull(id,0)--f1
when 2 then
ifnull(id,0)--f2
else 默认值
end as nu--重命名
2.case搜索函数
select id,
case
when size<15 then
ifnull(id,0)--f1
when size>22 then
ifnull(id,0)--f2
else 默认值
end
1.LEFT(str,len)
str: 给定的字符串,将从其左侧提取字符
len: 要提取的字符数,如果此参数大于字符串中的字符数,则此函数将返回实际的字符串
2.RIGHT(str,len)
str: 给定的字符串,将从其右侧提取字符
len: 要提取的字符数,如果此参数大于字符串中的字符数,则此函数将返回实际的字符串
where left(a.name,4)=left(b.name,4)
and right(a.id,2)=right(b.id,2)
消除结果集中的重复行——NULL值也会看为相同值
select distinct name from table_1
--单列
select id distinct name_frist,name_last from table_1
--只有name_frist和name_last均相同才被判定为重复行
select count(distinct name) from table_1
--和count结合用
1.转换指定数据类型CONVERT(expr,type)—将字符串expr的字符集变成transcoding_name
expr: 要转换的值
type: 要转换为的数据类型
SELECT CONVERT('2022-05-25', DATETIME);
2.转换指定字符集CONVERT(expr USING transcoding_name)—将字符串expr的字符集变成transcoding_name
expr: 要转换的值
transcoding_name: 要转换成的字符集
-- utf8mb4
SELECT CHARSET('ABC');
-- gbk
SELECT CHARSET(CONVERT('ABC' USING gbk));
1.LOCATE(s1,s2)—返回字符串s2中第一次出现子字符串s1的位置。
SELECT LOCATE("2","123") FROM DUAL;
2--MySQL从1开始
SELECT LOCATE("1234","123") FROM DUAL;
0
2.LOCATE(s1,s2,p)—返回字符串s2中第一次出现子字符串s1的位置,从p的位置开始往后找。
SELECT LOCATE('q', 'asqdfasqdfser',4)
8
1.SUBSTR(str,pos,len): 从pos开始的位置,截取len个字符
substr(string ,1,3)
str--取string左边第1位置起,3字长的字符串。
substr(string, -1,3)
g--取string右边第1位置起,3字长的字符串,显然右边第一位置起往右不够3字长
2.SUBSTR(str,pos): pos开始的位置,一直截取到最后
substr(string ,4)
ing--从右第4位置截取到最后
相当于> <
expr BETWEEN begin_expr AND end_expr;
--between筛选的是 expr >= begin_expr并且 expr <= end_expr 的数据,如果不存在则返回的是0;
expr NOT BETWEEN begin_expr AND end_expr;
--not between筛选的是 expr < begin_expr或者 expr > end_expr 的数据,如果不存在则返回的是0;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。