今天看到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、等待更新。。。
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|