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的方言,如果要考虑以后的数据库迁移成本的话,谨慎使用。
参考链接
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Learning Vue.js 2
Olga Filipova / Packt Publishing / 2017-1-5 / USD 41.99
About This Book Learn how to propagate DOM changes across the website without writing extensive jQuery callbacks code.Learn how to achieve reactivity and easily compose views with Vue.js and unders......一起来看看 《Learning Vue.js 2》 这本书的介绍吧!