GVKun编程网logo

PostgreSQL 通配符 LIKE 用于任何单词列表

11

在本文中,我们将给您介绍关于PostgreSQL通配符LIKE用于任何单词列表的详细内容,此外,我们还将为您提供关于centos7下源码编译安装php支持PostgreSQLpostgresql手册p

在本文中,我们将给您介绍关于PostgreSQL 通配符 LIKE 用于任何单词列表的详细内容,此外,我们还将为您提供关于centos 7下源码编译安装php支持PostgreSQL postgresql手册 postgresql官网下载 postgresql视频教、ILIKE匹配单词边界PostgreSQL 9、PostgreSQL LIKE 大小写、PostgreSQL LIKE 大小写实例的知识。

本文目录一览:

PostgreSQL 通配符 LIKE 用于任何单词列表

PostgreSQL 通配符 LIKE 用于任何单词列表

我有一个大约 25 个单词的简单列表。我在 PostgreSQL 中有一个 varchar 字段,假设列表是[''foo'', ''bar'', ''baz''].
我想在我的表中找到任何包含这些单词的行。这会起作用,但我想要更优雅的东西。

select *from tablewhere (lower(value) like ''%foo%'' or lower(value) like ''%bar%'' or lower(value) like ''%baz%'')

答案1

小编典典

您可以使用SIMILAR TO支持交替的 Postgres 运算符,即

select * from table where lower(value) similar to ''%(foo|bar|baz)%'';

centos 7下源码编译安装php支持PostgreSQL postgresql手册 postgresql官网下载 postgresql视频教

centos 7下源码编译安装php支持PostgreSQL postgresql手册 postgresql官网下载 postgresql视频教

1. 下载源码

$ mkdir /usr/downloads
$ wget -c http://cn2.php.net/distributions/php-5.6.20.tar.gz
$ tar -xvf php-5.6.20.tar.gz
$ mv php-5.6.20 /usr/local/src
$ cd !$ & cd php-5.6.20
登录后复制

2. 阅读安装指导

$ ls -also
$ less README
$ less INSTALL
登录后复制

3. 安装依赖包

$ yum install apr apr-util apr-devel apr-util-devel prce lynx
登录后复制

4. 安装httpd

$ wget -c http://apache.fayea.com//httpd/httpd-2.4.20.tar.gz
$ tar -xvf httpd-2.4.20.tar.gz
$ cd httpd-2.4.20
$ ./configure \
--prefix=/usr/local/programs/apache2 \
--enable-rewrite \
--enable-so \
--enable-headers \
--enable-expires \
--with-mpm=worker \
--enable-modules=most \
--enable-deflate \
--enable-module=shared
$ make
$ make install
$ cd /usr/local/programs/apache2
$ cp bin/apachectl /etc/init.d/httpd ## 复制启动脚本
$ /etc/init.d/httpd start ## 启动apache服务器,访问http://localhost/
$ egrep -v ''^[ ]*#|^$'' /usr/local/apache2/conf/httpd.conf | nl ## 查看apache服务器的配置
## 将apache加入系统服务
vi /etc/rc.d/rc.local
```
/usr/local/programs/apache2/bin/apachectl start
```
$ cat /etc/rc.local
登录后复制

4. 安装postgresql

立即学习“PHP免费学习笔记(深入)”;

$ yum install readline-devel  ## 安装readline依赖
$ cd /usr/downloads
$ wget -c https://ftp.postgresql.org/pub/source/v9.5.0/postgresql-9.5.0.tar.bz2
$ tar -xvf postgresql-9.5.0.tar.bz2
$ cd postgresql-9.5.0
$ ./configure --prefix=/usr/local/programs/postgresql
$ make
$ su
$ make install
$ /sbin/ldconfig /usr/local/programs/postgresql/lib ## 刷新下共享动态库
$ cd /usr/local/programs/postgresql
$ bin/psql --version  ## 检查运行情况
## 开始对postgresql的配置
$ vi /etc/profile.d/postgresql.sh ## 增加环境变量,不推荐直接在/etc/profile中添加,系统更新升级时会需要merge
``` 
PATH=/usr/local/programs/postgresql:$PATH
export PATH
```
$ source /etc/profile ## 更新环境变量

## 增加用户和其他文件夹
$ adduser postgres
$ passwd postgres 
$ mkdir /usr/local/programs/postgresql/logs
$ mkdir /usr/local/programs/postgresql/data
$ chown postgres /usr/local/programs/postgresql/data
$ su - postgres

## 初始化数据库
$ ./bin/initdb -D ./data
$ ./bin/createdb test
$ ./bin/psql test
## 已有数据库,可导入data文件夹后尝试root访问,假如带密码,可能需要进一步研究下
$ ./bin/postgres -D ./data >./logs/start-log-1.log 2>&1 &
$ ./bin/psql --list  ##列出数据库
## ok,安装完成

## 自定义设置,权限控制等,可以跳过,等熟悉使用后再做
## 编辑数据库配置及权限文件:
$ vi /usr/local/programs/postgresql/data/postgresql.conf   ## 数据库配置文件
$ chown postgres postgresql.conf
$ chmod 644 postgresql.conf
$ vi /usr/local/programs/postgresql/data/pg_hba.conf   ## 权限文件
$ vi /usr/local/programs/postgresql/data/pg_ident.conf

## 设置开机自启动:
$ vi /etc/rc.d/rc.local    ## 添加如下内容
```
/usr/local/programs/postgresql/bin/postgresql start
```
登录后复制

5. 安装php

## 源码已经在第一步中下载,现在开始安装:
$ yum install libxml2 libxml2-devel libpng libpng-devel libjpeg libjpeg-devel freetype freetype-devel
$ ./configure \
--prefix=/usr/local/programs/php \
--with-apxs2=/usr/local/programs/apache2/bin/apxs \
--with-zlib \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-zlib-dir \
--enable-mbstring \
--with-pgsql=/usr/local/programs/postgresql \
--with-pdo-pgsql=/usr/local/programs/postgresql 
$ make
$ make test
> Bug #42718 (unsafe_raw filter not applied when configured as default filter) [ext/filter/tests/bug42718.phpt]  XFAIL REASON: FILTER_UNSAFE_RAW not applied when configured as default filter, even with flags
> Bug #67296 (filter_input doesn''t validate variables) [ext/filter/tests/bug49184.phpt]  XFAIL REASON: See Bug #49184
> Bug #53640 (XBM images require width to be multiple of 8) [ext/gd/tests/bug53640.phpt]  XFAIL REASON: Padding is not implemented yet
> zend multibyte (7) [ext/mbstring/tests/zend_multibyte-07.phpt]  XFAIL REASON: https://bugs.php.net/bug.php?id=66582
> zend multibyte (9) [ext/mbstring/tests/zend_multibyte-09.phpt]  XFAIL REASON: https://bugs.php.net/bug.php?id=66582
>Bug #70470 (Built-in server truncates headers spanning over TCP packets) [sapi/cli/tests/bug70470.phpt]  XFAIL REASON: bug is not fixed yet

## 查阅官方的bug,发现:
> id=66582: status : Closed. Fixed in master (PHP7)
> id=42718: status : Assigned
> id=42718: reference to id=49184, unsolved for many years
## 那就不关心了,直接装吧
$ make install
> You may want to add: /usr/local/programs/php/lib/php to your php.ini include_path

## 那就按它说的设置吧
$ cp php.ini-development /usr/local/programs/php/lib/php.ini
```
include_path = ".;/usr/local/programs/php/lib/php"

## 然后,编辑httpd的设置,确保其能正确解析php文件
```
...
LoadModule php5_module modules/libphp5.so
...
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .php5

...
<ifmodule dir_module>
    DirectoryIndex index.html index.php
</ifmodule>     
```

## 重启httpd,测试
$ cd /usr/local/programs/apache2
$ bin/httpd -h
$ bin/httpd -k stop
$ bin/httpd -f conf/httpd.conf
## 默认设置的www页面在./htdocs/下,那就先去里面建一个测试页面吧
$ vi htdocs/index.php
```
<?php phpinfo(); ?>
```
$ curl http://localhost/index.php |grep postgresql
#ok
登录后复制

后续应该做的事

* 1. 启动时,不需要要手动指定配置文件
* 2. php初始化www目录设置
* 3. php 用户、权限管理等

'').addClass(''pre-numbering'').hide(); $(this).addClass(''has-numbering'').parent().append($numbering); for (i = 1; i '').text(i)); }; $numbering.fadeIn(1700); }); });

以上就介绍了centos 7下源码编译安装php支持PostgreSQL,包括了postgresql,centos 7方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

ILIKE匹配单词边界PostgreSQL 9

ILIKE匹配单词边界PostgreSQL 9

在PostgreSQL 9中使用LIKE / ILIKE运算符时,可以不必使用完整的〜运算符正则表达式来匹配单词边界吗?

例如

SELECT ''Super fast training'' ILIKE ''%train\M%'' as match;

其中\ M是单词结尾的边界,并且match返回 false

谢谢,

标记

答案1

您可以使用以下技巧来做到这一点:

选择''''|| ''超级快速训练''ILIKE''%train%''

但我不介意,所以这是个好主意。您可以使用正则表达式或PostgreSQL全文。PostgreSQL正则表达式不会比ILIKE或LIKE慢很多。

PostgreSQL LIKE 大小写

PostgreSQL LIKE 大小写

Postgresql 数据库

函数upper(“字符串”):转成大写字符串

WHEREUPPER("User_Name") LIKEupper(username) 此句查询“User_Name” 中值大小写不区分。


SELECT "User_Id","User_Image","User_Name","User_Birthday","User_Sex","User_OnlineLat","User_OnlineLon","User_State",

(SELECT COUNT(*) FROM "tbUsers" WHERE UPPER("User_Name") LIKE upper(username)) AS "user_count"
FROM "tbUsers"
WHERE UPPER("User_Name") LIKE upper(username) LIMIT 10 OFFSET 0;

PostgreSQL LIKE 大小写实例

PostgreSQL LIKE 大小写实例

PostgreSQL 数据库

函数upper(“字符串”):转成大写字符串

WHERE UPPER("User_Name") LIKE upper(username) 此句查询“User_Name” 中值大小写不区分。

SELECT "User_Id","User_Image","User_Name","User_Birthday","User_Sex","User_OnlineLat","User_OnlineLon","User_State",
(SELECT COUNT(*) FROM "tbUsers" WHERE UPPER("User_Name") LIKE upper(username)) AS "user_count"
FROM "tbUsers" 
WHERE UPPER("User_Name") LIKE upper(username) LIMIT 10 OFFSET 0;

补充:PostgreSQL数据库表名大小写问题

今天,用Delphi 连接postgresql数据库时,出现了问题。问题提示:error:表不存在。Postgrsql数据库的表名都用大写,比如Users、Profiles、Money等。

多尝试了一些表,发现当表名都是小写时,可以连接。

后来发现,在做select * from Users这样的查询的时候也会提示ERROR: relation “users” does not exist。

分析了一下,由于 PostgreSQL 是大小写敏感的,并默认对SQL语句中的数据库对象名称转换为小写,因此如果你在创建数据库对象时指定了大小写混和的对象名称,那么在通过SQL语句访问 这些对象时,由于Postgresql数据库里表名应该是分大小写的,导致找不到users这个表。

要解决这个问题,必须使用双引号(”)将数据库对象括起来,以提示 PostgreSQL 不用帮你转换对象名为小写,否则将激发“xxxxx对象不存在”的异常,譬如您的数据库中有名为 TUser 的表,您在 PostgreSQL 自带的图形化查询工具中必须使用类似这样的查询语句才能正确执行:SELECT * FROM “TUser”,当然它对 SQL 标准中的保留字和关键字是不区分大小写的,所以写成 select * From “TUser” 这样也是完全可以的。

另外,PostgreSQL 对数据也是大小写敏感的,这点与 SQLServer 不同(SQLServer 默认是不敏感的),譬如在 TUser 表中有字段 Name,其中有一行 Name 字段值为“Tony Tang”的记录,如果直接使用

SELECT * FROM “TUser” WHERE “Name” LIKE ‘%tony%'';

是查询不到这条记录的,不过你可以这么写:

SELECT * FROM “TUser” WHERE UPPER(“Name”) LIKE ‘%TONY%'';

呵呵,是不是觉得这样不太好看,而且担心性能会受影响?幸好 PostgreSQL 提供了关键字 ILIKE 来帮我们解决这个问题,这真是个非常有趣的关键字(I like),对于第一种写法只需要将 LIKE 替换成 ILIKE 就可以了。

最简单的办法,就是数据库里所有的表名都是小写的,最好字段名也都是小写的(因为映射到对象属性以后基本上会变换大小写,JPA是都变成小写)。这样就没与那么多烦恼以及兼容性问题了。

小结:

1、PostgreSQL对表名、字段名都是区分大小写的。用SQL语句的时候需要加双引号。

2、PostgreSQL在SQL语句中对数据(字段)大小写是敏感的.

select login_ID as 编号, name as 用户名 from t_login(这种会报错,找不到login_ID字段).

如果要查询大写字母的字段,同样要加上双引号:select “login_ID” as 编号, name as 用户名 from t_login.

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。

您可能感兴趣的文章:
  • 浅谈PostgreSQL中大小写不敏感问题
  • Postgresql 数据库转义字符操作
  • postgresql~*符号的含义及用法说明
  • postgresql数据库使用说明_实现时间范围查询
  • postgresql 实现将数组变为行
  • 基于PostgreSql 别名区分大小写的问题

关于PostgreSQL 通配符 LIKE 用于任何单词列表的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于centos 7下源码编译安装php支持PostgreSQL postgresql手册 postgresql官网下载 postgresql视频教、ILIKE匹配单词边界PostgreSQL 9、PostgreSQL LIKE 大小写、PostgreSQL LIKE 大小写实例的相关知识,请在本站寻找。

本文标签: