数据库摘录

1、对日期进行修改

date_sub(NOW(), interval 2 MONTH),当前时间减去两月,date_add() 则为加,除了月份,年份季度分秒也可以。

2、找到某一个字段以数字开头的数据

select * from 表名 WHERE 字段名 REGEXP ‘^ [0-9]’ limit 0,500;
注意:^符号后边的空格去掉,不加空格给我转成上标了。

3、根据下标替换字段值某一位置内容

在以前替换内容的时候,都是找到字段值包含的某一个字符串,去进行替换,
也就是replace(参数一,参数二,参数三);
参数一:字段;
参数二:该字段值包含的字符串;
参数三:用来替换参数二的任意字符串;

但在有一些时候,我们不去修改某一特定值,字段的值长度相等,或者是只截取字段值的首位到某一位置。我们可以用到insert(参数一,参数二,参数三,参数四);
参数一:字段;
参数二:定位内容开始的下标,从1开始即可,小于0则不执行该语句;
参数三:从开始下标,截取多少个字符串,大于字段长度则修改开始下标到最后的内容;
参数四:用来替换截取内容的任意字符串;

使用not in (子查询)的时候,子查询返回单个值的时候,如果包含空值,则会导致查询结果为空。

select的查询结果根据in里的顺序进行返回 select * from table order by field(id,3,6,9,1,2,5,8,7);

SQL根据查询结果判断执行更新、插入还是删除操作

merge into 表 A using (查询结果) 表B on A.字段=b.字段(A、B表关联条件)
when matched then
SQL操作 ------符合查询结果时执行的操作
when not matched then
SQL操作 ------不符合查询结果时执行的操作

当IN后面的数据在数据表中超过30%的匹配时是全表扫描,不走索引

当匹配的结果通过逗号分割,可以使用find_in_set匹配

find_in_set(匹配参数,匹配结果集)
两个参数有一个为null 则返回null 匹配成功则返回匹配下标 下标从1开始

将多行查询结果拼接成一行用逗号分割

oracle 用WM_CONCAT(字段)
mysql 用GROUP_CONCAT(字段)

查询结果自定义排序

ORDER BY FIELD(查询字段,‘结果1’,‘结果2’,‘结果3’)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值