mysql语法函数

LEFT(str, length) 函数
从左开始截取字符串,length 是截取的长度。

select left("ABCD",1);输出 'A'
select left("ABCD",2);输出 'AB'

right(str,length) 函数
从右边开始截取字符串,length 是截取的长度。

select right("ABCD",1);输出 "D"
select right("ABCD",2);输出 "CD"

CONCAT() 函数
CONCAT 可以将多个字符串拼接在一起。

select CONCAT("AB","c" );输出"ABC"

UPPER(str) 与 LOWER(str)
UPPER(str) 将字符串中所有字符转为大写
LOWER(str) 将字符串中所有字符转为小写

select UPPER ("abc");输出"ABC"
select LOWER("ABC");输出"abc"

SUBSTRING(str, begin, end)
截取字符串,end 不写默认为空。
SUBSTRING(name, 2) 从第二个截取到末尾,注意并不是下标,就是第二个。

select SUBSTRING("abc",2);输出"bc"
select SUBSTRING("abcd",2,3);输出"bcd"

NOT IN()
用来查询不在某个值集的数据

select * from A where id not in (1,2)查询A表中id不为1,2的数据

Not Exists()
和not in一样,not exists用于多表查询即子查询
not exists查询是要比not in 效率高
详细解释:
https://blog.csdn.net/weixin_45589505/article/details/125785457

GROUP_CONCAT()
用于将分组中括号里对应的字符串进行连接.如果分组中括号里的参数xxx有多行,那么就会将这多行的字符串连接,每个字符串之间会有特定的符号进行分隔。
语法:
GROUP_CONCAT([DISTINCT] 要连接的字段 [ORDER BY 排序字段 ASC/DESC] [SEPARATOR ‘分隔符’])
字段说明:

  1. 使用DISTINCT可以排除重复值
  2. 如果需要对结果中的值进行排序,可以使用ORDER BY子句
  3. SEPARATOR '分隔符’是一个字符串值,默认为逗号
select name, GROUP_CONCAT(age) as age from user  GROUP BY name ; 对user表按name进行分组并把相同的age进行拼接

详细例子:http://t.csdn.cn/3Jw9R

like (不区分大小写)
模糊查询:对数据进行模糊查询,通常与 % 和 _ 搭配使用
*百分比(%) 通配符允许匹配任何字符串的零个或多个字符。
*下划线(_) 通配符允许匹配任何单个字符。

select * from user where name like 'A'; 查询name字段中等于A的数据
select * from user where name like '%A%';  查询name字段中包含A的数据
select * from user where name like 'A%';  查询name字段中开头为A的数据
select * from user where name like '%A%';  查询name字段中结尾为A的数据
select * from user where name like '_A%';  查询name字段中第二个为A的数据

注意:当输入的为%或者 _ 时会查出所有数据
解决:进行转义

select * from user where name like ''%\\_%''
或
select * from user where name like ''%/_%'' ESCAPE '/';

还有一种就是使用 INSTR函数
select * from user where INSTR(id,‘%’)但这种只能查询包含的不能判断是开头的还是结尾的或者其它的。

INSTR函数(不区分大小写)
字符串中查找子字符串或检查字符串中是否存在子字符串
INSTR()函数返回字符串中子字符串第一次出现的位置。如果在str中找不到子字符串,则INSTR()函数返回零(0)

select * from user where INSTR(name,'A')>0;返回user表中name包含A字符串的数据

UNION 与 UONION ALL
这两个函数的作用时把集合合并起来,区别在于UNION会去掉重复的,UNION ALL会原封不动的合并
user表有数据 1,2,3,4 test表有数据 2,4,5,6

select * from user union select * from test; 输出 1,2,3,4,5,6
select * from user union all select * from test; 输出 1,2,2, 3,4,4, 5,6
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值