佳木斯湛栽影视文化发展公司

主頁 > 知識(shí)庫 > PostgreSQL LIKE 大小寫實(shí)例

PostgreSQL LIKE 大小寫實(shí)例

熱門標(biāo)簽:AI電銷 服務(wù)外包 網(wǎng)站排名優(yōu)化 地方門戶網(wǎng)站 呼叫中心市場(chǎng)需求 Linux服務(wù)器 鐵路電話系統(tǒng) 百度競(jìng)價(jià)排名

PostgreSQL 數(shù)據(jù)庫

函數(shù)upper(“字符串”):轉(zhuǎn)成大寫字符串

WHERE UPPER("User_Name") LIKE upper(username) 此句查詢“User_Name” 中值大小寫不區(qū)分。

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;

補(bǔ)充:PostgreSQL數(shù)據(jù)庫表名大小寫問題

今天,用Delphi 連接postgresql數(shù)據(jù)庫時(shí),出現(xiàn)了問題。問題提示:error:表不存在。Postgrsql數(shù)據(jù)庫的表名都用大寫,比如Users、Profiles、Money等。

多嘗試了一些表,發(fā)現(xiàn)當(dāng)表名都是小寫時(shí),可以連接。

后來發(fā)現(xiàn),在做select * from Users這樣的查詢的時(shí)候也會(huì)提示ERROR: relation “users” does not exist。

分析了一下,由于 PostgreSQL 是大小寫敏感的,并默認(rèn)對(duì)SQL語句中的數(shù)據(jù)庫對(duì)象名稱轉(zhuǎn)換為小寫,因此如果你在創(chuàng)建數(shù)據(jù)庫對(duì)象時(shí)指定了大小寫混和的對(duì)象名稱,那么在通過SQL語句訪問 這些對(duì)象時(shí),由于Postgresql數(shù)據(jù)庫里表名應(yīng)該是分大小寫的,導(dǎo)致找不到users這個(gè)表。

要解決這個(gè)問題,必須使用雙引號(hào)(”)將數(shù)據(jù)庫對(duì)象括起來,以提示 PostgreSQL 不用幫你轉(zhuǎn)換對(duì)象名為小寫,否則將激發(fā)“xxxxx對(duì)象不存在”的異常,譬如您的數(shù)據(jù)庫中有名為 TUser 的表,您在 PostgreSQL 自帶的圖形化查詢工具中必須使用類似這樣的查詢語句才能正確執(zhí)行:SELECT * FROM “TUser”,當(dāng)然它對(duì) SQL 標(biāo)準(zhǔn)中的保留字和關(guān)鍵字是不區(qū)分大小寫的,所以寫成 select * From “TUser” 這樣也是完全可以的。

另外,PostgreSQL 對(duì)數(shù)據(jù)也是大小寫敏感的,這點(diǎn)與 SQLServer 不同(SQLServer 默認(rèn)是不敏感的),譬如在 TUser 表中有字段 Name,其中有一行 Name 字段值為“Tony Tang”的記錄,如果直接使用

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

是查詢不到這條記錄的,不過你可以這么寫:

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

呵呵,是不是覺得這樣不太好看,而且擔(dān)心性能會(huì)受影響?幸好 PostgreSQL 提供了關(guān)鍵字 ILIKE 來幫我們解決這個(gè)問題,這真是個(gè)非常有趣的關(guān)鍵字(I like),對(duì)于第一種寫法只需要將 LIKE 替換成 ILIKE 就可以了。

最簡(jiǎn)單的辦法,就是數(shù)據(jù)庫里所有的表名都是小寫的,最好字段名也都是小寫的(因?yàn)橛成涞綄?duì)象屬性以后基本上會(huì)變換大小寫,JPA是都變成小寫)。這樣就沒與那么多煩惱以及兼容性問題了。

小結(jié):

1、PostgreSQL對(duì)表名、字段名都是區(qū)分大小寫的。用SQL語句的時(shí)候需要加雙引號(hào)。

2、PostgreSQL在SQL語句中對(duì)數(shù)據(jù)(字段)大小寫是敏感的.

select login_ID as 編號(hào), name as 用戶名 from t_login(這種會(huì)報(bào)錯(cuò),找不到login_ID字段).

如果要查詢大寫字母的字段,同樣要加上雙引號(hào):select “l(fā)ogin_ID” as 編號(hào), name as 用戶名 from t_login.

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • 淺談PostgreSQL中大小寫不敏感問題
  • Postgresql 數(shù)據(jù)庫轉(zhuǎn)義字符操作
  • postgresql~*符號(hào)的含義及用法說明
  • postgresql數(shù)據(jù)庫使用說明_實(shí)現(xiàn)時(shí)間范圍查詢
  • postgresql 實(shí)現(xiàn)將數(shù)組變?yōu)樾?/li>
  • 基于PostgreSql 別名區(qū)分大小寫的問題

標(biāo)簽:仙桃 湘潭 崇左 衡水 黃山 銅川 湖南 蘭州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PostgreSQL LIKE 大小寫實(shí)例》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    珲春市| 漠河县| 同江市| 孟州市| 萨嘎县| 西华县| 冷水江市| 阿坝县| 葫芦岛市| 临泉县| 乐业县| 乡宁县| 武宣县| 阳城县| 天全县| 河间市| 高青县| 年辖:市辖区| 繁峙县| 庆安县| 无棣县| 张家川| 政和县| 武川县| 陵水| 武穴市| 依安县| 扶风县| 通化县| 无棣县| 陕西省| 华蓥市| 榕江县| 讷河市| 洞口县| 林州市| 广水市| 黄山市| 泰宁县| 兴文县| 启东市|