加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

POSTGRESQL 相比MYSQL的几个实用函数

发布时间:2020-12-13 18:01:29 所属栏目:百科 来源:网络整理
导读:今天看到PGSQL的函数这一节。 POSTGRESQL 相比MYSQL多了好多实用的函数。 1、正则替换。 t_girl = # create table t_regexp ( id serial not null , username char ( 20 ) ) ; NOTICE : CREATE TABLE will create implicit sequence "t_regexp_id_seq"
今天看到PGSQL的函数这一节。
POSTGRESQL 相比MYSQL多了好多实用的函数。
1、正则替换。
t_girl=# create table t_regexp(id serial not null,username char(20) );
NOTICE: CREATE TABLE will create implicit sequence "t_regexp_id_seq" for serial column "t_regexp.id"
TABLE
Time: 6.148 ms
t_girlinsert into t_regexp(usernamevalues ('Shit,shit''i I i I you';
INSERT 0 2
Time: 2.893 ms
t_girlselect * from t_regexp;
id | username
----+----------------------

1 | Shit| i I i I you
(2 rows)

Time: 0.296 ms
t_girlupdate t_regexp set username = regexp_replace'[Ss]''a''g'UPDATE 2
Time: 1.139 ms
t_girl| ahit.271 ms
t_girl'a(..)''S1P'.090 ms
t_girl| ShiPt.289 ms
t_girl#
可惜MYSQL的REPLACE函数只能简单的替换字符串。
以往碰到这种正则替换,先把数据导出到文本,然后再外部用正则替换掉,再导入到数据库中。
2、字符分割。
获取分割指定的字符串部分,这个在MYSQL中也是只能用循环解决。
Time.306 ms
t_girlselect split_part'now,year,month'',';
split_part
------------

year
(1 row.328 ms
t_girl------------

month
.253 ms
t_girl#
这个在MYSQL中只能通过写一个循环来判断。
至于双方的效率暂时还没有测试。
3、顺序替换字符,这个也是MYSQL中没有的。

t_girlselect translate'mo''ab';
translate
----------------

nbwabnth
.309 ms
4、截取符合正则的子串。
t_girlSELECT SUBSTRING'XY1234Z''Y*?([0-9]{1,3})';
substring
-----------

1
.246 ms
t_girl'Y*?([0-9]{2,0);">-----------

12
(1 row)
5、等待更新。。。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读