為什么相同的postgres查詢對兩位數不起作用?

我正在使用postgres數據庫作為我的應用程序。

我有以下數據

    create table contacts (
        id int,
        contact_data jsonb
    );
    
    insert into contacts values
    (1,   '{
        "tags": [
            "MOCK_DATA (4)"
        ],
        "Email": "nk3ynman5@marriott.com",
        "reach": false,
        "Gender": "Male",
        "Interest": [
            "Dance"
        ],
        "Last Name": "Kynman",
        "First Name": "Nicko"
    }'),
    (2,   '{
        "ltv": "6",
        "City": "Bengaluru",
        "Email": "aaa@aa.com",
        "State": "Karnataka",
        "Country": "India",
        "latitude": 12.9715987,
        "Last Name": "World",
        "longitude": 77.5945627,
        "First Name": "Helo"
    }'),
    (3,   '{
        "ltv": "11",
        "Email": "sf3ortye8@ebay.co.uk",
        "reach": false,
        "Gender": "Female",
        "Country": "United States",
        "latitude": "37.09024",
        "Last Name": "Fortye",
        "longitude": "-95.712891",
        "First Name": "Sissie"
    }');
    Select * from contacts;
    
    +====+==================================================================================================================================+
    | id | contact_data                                                                                                                     |
    +====+==================================================================================================================================+
    | 1  | {"tags": ["MOCK_DATA (4)"], "Email": "nk3ynman5@marriott.com", "reach": false, "Gender": "Male", "Interest": ["Dance"], "Last... |
    +----+----------------------------------------------------------------------------------------------------------------------------------+
    | 2  | {"ltv": "6", "City": "Bengaluru", "Email": "aaa@aa.com", "State": "Karnataka", "Country": "India", "latitude": 12.9715987, "L... |
    +----+----------------------------------------------------------------------------------------------------------------------------------+
    | 3  | {"ltv": "11", "Email": "sf3ortye8@ebay.co.uk", "reach": false, "Gender": "Female", "Country": "United States", "latitude": "3... |
    +----+----------------------------------------------------------------------------------------------------------------------------------+

我正在嘗試獲取ltv在2到9之間的id。它有一張唱片。哪個是正確的

    SELECT id from contacts where ( contact_data->> 'ltv' > '2' and contact_data->> 'ltv' < '9' );
    +====+
    | id |
    +====+
    | 2  |
    +----+

Issue:

現在我嘗試在2到12之間,這應該會給出2條記錄,但是它會給出0個數據。

SELECT id from contacts where ( contact_data->> 'ltv' > '2' and contact_data->> 'ltv' < '12' );

誰能告訴我這里有什么問題嗎。為什么我得不到價值?這里是sql-fiddle

? 最佳回答:

在PostgreSQL中,->>運算符將返回一個text值。所以你也用了相應的類型。

嘗試以下查詢:

SELECT id from contacts where ( (contact_data->> 'ltv')::int > 3 and (contact_data->> 'ltv')::int < 12 );

演示中唯一需要注意的是,itv必須只包含整數值,否則強制轉換將拋出錯誤。

主站蜘蛛池模板: 无码一区二区三区免费视频| 麻豆视频一区二区三区| 激情内射亚洲一区二区三区爱妻| 无码人妻精品一区二区三区99不卡| 国产日韩精品一区二区在线观看播放 | 国产精品一区二区三区高清在线 | AV天堂午夜精品一区| 亚洲日本一区二区三区在线不卡| 国产在线精品一区二区三区不卡 | 国产天堂在线一区二区三区| 波多野结衣一区二区三区高清在线 | 上原亚衣一区二区在线观看| 亚洲日韩激情无码一区| 性无码免费一区二区三区在线| 国产一区二区三区影院| 无码一区二区三区亚洲人妻 | 久久久av波多野一区二区| 国产乱码一区二区三区四| 三级韩国一区久久二区综合| 亚洲AV无码一区二区三区DV| 国产精品视频一区国模私拍| 久久久久人妻精品一区三寸蜜桃| 亚洲第一区视频在线观看 | 久久成人国产精品一区二区| 色妞色视频一区二区三区四区 | 一区二区三区四区在线播放| 久久精品一区二区免费看| 怡红院AV一区二区三区| 一本大道东京热无码一区| 亚洲另类无码一区二区三区| 中文国产成人精品久久一区| 亚洲高清一区二区三区| 久久国产精品一区| 亚洲愉拍一区二区三区| 熟妇人妻系列av无码一区二区 | 亚洲AV本道一区二区三区四区| 日韩在线观看一区二区三区| 日本内射精品一区二区视频| 精品国产日韩亚洲一区| 亚洲AV无码一区二区一二区| 亚洲成AV人片一区二区|