推广 热搜:

MySQL特殊函数怎么用

   日期:2024-08-23     来源:www.eesxj.com    作者:二手网    浏览:588    评论:0    
核心提示:[db:简介]
1. group_concat

用group_concat函数,可以轻松的把分组后,name 相同的数据拼接到一块,组成一个字符串,用逗号分隔。

2. char_length

通过该函数就能获得字符长度。

3.locate

在某个字符串中的地方

4.replace

将字符串中的字符 A 替换成 B。REPLACE(name,lsquo;Arsquo;,lsquo;Brsquo;)

5.now

获得目前时间

6.insert into hellip; select

INSERTINTO`brand`(`id`,`code`,`name`,`edit_date`)selectnull,code,name,now(3)from`order`wherecodein(004,005);

如此就能将 order 表中的部分数据,很轻松插入到 brand 表中。

7.insert into hellip; ignore

INSERTignoreINTO`brand`(`id`,`code`,`name`,`edit_date`)VALUES(123,108,苏三,now(3));

假如 brand 表中已经存在 name 为苏三的数据了,则该 sql 语句也能正常实行,并不会显示错误。由于它会忽视异常,返回的实行结果影响行数为 0,它不会重复插入数据。

8.select hellip; for update

begin;select*from`user`whereid=1forupdate;//业务逻辑处置update`user`setscore=score-1whereid=1;commit;

如此在一个事务中用for update锁住一行记录,其他事务就不可以在该事务提交之前,去更新那一行的数据。

应该注意的是 for update 前的 id 条件,需要是表的主键或者唯一索引,不然行锁或许会失效,大概变成表锁

9.on duplicate key update

一般情况下,大家在插入数据之前,一般会先查看一下,该数据是不是存在。假如没有,则插入数据。假如已存在,则不插入数据,而直接返回结果。

在没什么并发量的场景中,这种做法是没那些问题的。但假如插入数据的请求,有肯定的并发量,这种做法就或许会产生重复的数据。

当然预防重复数据的做法不少,譬如:加唯一索引、加分布式锁等。

但这类策略,都没法做到让第二次请求也更新数据,它们一般会判断已经存在就直接返回了。

这样的情况可以用on duplicate key update语法。

该语法会在插入数据之前判断,假如主键或唯一索引没有,则插入数据。假如主键或唯一索引存在,则实行更新操作。

INSERTINTO`brand`(`id`,`code`,`name`,`edit_date`)VALUES(123,108,苏三,now(3))onduplicatekeyupdatename=苏三,edit_date=now(3);

如此一条语句就能轻松解决需要,既不会产生重复数据,也能更新最新的数据。

但应该注意的是,在高并发的场景下用on duplicate key update语法,或许会存在死锁的问题,所以要依据实质状况酌情用。

10.show create table

有时,大家想迅速查询某张表的字段状况,一般会用desc命令

desc`order`;

查询索引信息

showindex

大家可以看到很完整的建表语句,表名、字段名、字段种类、字段长度、字符集、主键、索引、实行引擎等都能看到

showcreatetableshowcreatetable`order`;11.create table hellip; select

有时,大家需要迅速备份表。

一般情况下,可以分两步走:

创建一张临时表

将数据插入临时表

创建临时表

createtableorder_2022121819like`order`;

将 order 表的数据插入到 order_2022121819 表中,也就是达成数据备份的功能。

insertintoorder_2022121819select*from`order`;

整理上面两条命令

createtableorder_2022121820select*from`order`;

 
标签: MySQL 函数
打赏
 
更多>同类二手资讯
0相关评论

热门推荐
推荐图文
推荐二手资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  免责声明  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报