明霞山资源网 Design By www.htccd.com

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,LIKE,大小写

明霞山资源网 Design By www.htccd.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
明霞山资源网 Design By www.htccd.com

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。