PostgreSQL Like查询与正则表达式
栏目: 数据库 · PostgreSQL · 发布时间: 5年前
内容简介:安装PostgreSQL之后,PostgreSQL会创建一个名为“postgres”的用户,创建一个名为“postgres”的数据库。我们就可以使用这个默认的库做实验。首先建表并插入数据:查询结果:
安装PostgreSQL之后,PostgreSQL会创建一个名为“postgres”的用户,创建一个名为“postgres”的数据库。我们就可以使用这个默认的库做实验。
首先建表并插入数据:
CREATE TABLE public.user( ID SERIAL PRIMARY KEY NOT NULL, UserID varchar(100) NOT NULL, UserName varchar(100) NOT NULL, PhoneNumber varchar(20) NOT NULL ); INSERT INTO public."user" (userid, username, phonenumber) VALUES('u1', 'tom', '123'); INSERT INTO public."user" (userid, username, phonenumber) VALUES('u2', 'Tom', '123'); INSERT INTO public."user" (userid, username, phonenumber) VALUES('u3', 'TOM', '321'); INSERT INTO public."user" (userid, username, phonenumber) VALUES('u3', 'Jane', '456'); INSERT INTO public."user" (userid, username, phonenumber) VALUES('u3', 'jane', '654'); INSERT INTO public."user" (userid, username, phonenumber) VALUES('u3', 'Janey', '789'); INSERT INTO public."user" (userid, username, phonenumber) VALUES('u3', 'janey', '987'); 复制代码
使用普通的 like
查询
select * from public."user" where username like '%O%'; 复制代码
查询结果:
id | userid | username | phonenumber |
---|---|---|---|
3 | u3 | TOM | 321 |
使用like查询需要 %
号作为占位符,且PostgreSQL默认区分大小写。
使用不区分大小写的 ilike
查询
select * from public."user" where username ilike '%O%'; 复制代码
查询结果:
id | userid | username | phonenumber |
---|---|---|---|
1 | u1 | tom | 123 |
2 | u2 | Tom | 123 |
3 | u3 | TOM | 321 |
使用不需要占位符的 ~*
查询
select * from public."user" where username ~* 'O'; 复制代码
查询结果:
id | userid | username | phonenumber |
---|---|---|---|
1 | u1 | tom | 123 |
2 | u2 | Tom | 123 |
3 | u3 | TOM | 321 |
PostgreSQL正则表达式
select * from public."user" where username SIMILAR TO '%(t|j)%'; 复制代码
查询结果:
id | userid | username | phonenumber |
---|---|---|---|
1 | u1 | tom | 123 |
5 | u3 | jane | 654 |
7 | u3 | janey | 987 |
总结
PostgreSQL的模糊匹配和模式查询非常强大,这里只是举了几个简单的小例子做了一下对比。更多的用法可以访问下面的参考链接了解。
如果感觉正则表达式还不能满足你的要求,可以尝试着写一个自定义函数。
另外,由于这些查询属于pgsql的方言,如果要考虑以后的数据库迁移成本的话,谨慎使用。
参考链接
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
从莎草纸到互联网:社交媒体2000年
[英]汤姆·斯丹迪奇 / 林华 / 中信出版社 / 2015-12 / 58.00元
【内容简介】 社交媒体其实并不是什么新鲜的东西。从西塞罗和其他古罗马政治家用来交换信息的莎草纸信,到宗教改革、美国革命、法国大革命期间印制的宣传小册子,过去人类跟同伴交流信息的方式依然影响着现代社会。在报纸、广播和电视在散播信息上面统治了几十年后,互联网的出现使社交媒体重新变成人们与朋友分享信息的有力工具,并推动公共讨论走向一个新的模式。 汤姆•斯丹迪奇在书中提醒我们历史上的社交网络其......一起来看看 《从莎草纸到互联网:社交媒体2000年》 这本书的介绍吧!