更新操作(attributes屬性為jsonb型別)
方法定義:
jsonb_set(target jsonb, path text, new_value jsonb[, create_missing boolean])
引數:target:目標(jsonb型別的屬性)
path :路徑,如果jsonb是陣列『』表示在下標是0的位置更新a屬性,如果不是陣列,是物件,則寫『』即可
new_value:新值
選填引數:create_missing:jsonb欄位不存在f1屬性時建立,預設為true
返回:更新後的jsonb
官方文件給出的示例(jsonb陣列):
jsonb_set('[,2,null,3]', '','[2,3,4]', false)
結果:[,2,null,3]
jsonb_set('[,2]', '','[2,3,4]')
結果:[, 2]
更新jsonb屬性:
-- attributes為jsonb型別字段(物件轉成的json)
原值:update user_test set attributes = jsonb_set(attributes,'',
'"0"'::jsonb,
false
)where id =
'8888'
;執行後:
為jsonb插入屬性:
-- 執行後attributes欄位中新增了platform:baidu
update user_test set attributes = attributes::jsonb ||
''::jsonb;
或者:update user_test set attributes = jsonb_set(attributes,'',
);
查詢
select value from json_each('') where key = 'a'
select * from json_object_keys('')
select * from json_object_keys('}')
select * from json_object_keys(from ci_type.attributes);--錯誤
select * from to_jsonb('"a":1,"b":2')
select ''::json->>'b' --獲取jsonb中對應鍵的值(文字)
--select * from json_each( to_jsonb(select distinct attributes from ci_type ) )
--select to_jsonb(select distinct attributes from ci_type )
--擴充套件字段提取相應屬性的值
select attributes :: json->>'instancetype' from ci_type
-- 屬性值轉為jsonb
select to_jsonb('id:'||id::text) from ci
--jsonb新增屬性,刪除屬性
select ''::jsonb || ''::jsonb--新增
select ''::jsonb -'c'-'d'-'a'||''--刪除
select ''::jsonb - 'a'
-- 根據路徑獲取json物件:#>
select ',"c":3}'::json #> ''
結果:"b1"
select ',"c":3}'::json #> ''
結果:-- 根據路徑獲取json物件為text:#>>
select ',"c":3}'::json #>> ''
結果:"b1"
to_jsonb()方法接受乙個引數,將引數轉換為jsonb
jsonb儲存毫秒值欄位
# 更新user表中attributes欄位中的create_time欄位為當前時間
update user_test
set attributes = jsonb_set(attributes,
'',to_jsonb(extract(epoch from
now())
*1000),
true
)
extract(epoch from now())*1000 獲取毫秒值
extract(field from source)extract(epoch from now())檢視現在距1970-01-01 00:00:00 utc 的秒數field 表示取的時間物件,source 表示取的日期**,型別為 timestamp、time 或 interval。
example:select extract(year from now());
epoch:新紀元時間 epoch 是以 1970-01-01 00:00:00 utc 為標準的時間,將目標時間與 1970-01-01 00:00:00時間的差值以秒來計算 ,單位是秒,可以是負值;
PageHelper之PageInfo屬性解釋
最近在使用pagehelper進行分頁操作,但是我對pageinfo的屬性不是很熟悉,因此這裡記錄一下pageinfo的屬性意思。private listlist 物件記錄結果集 private int total 0 總記錄數 private int pagesize 20 每頁顯示記錄數 pri...
Spring Framework之自定義屬性編輯器
屬性轉換測試 簡單點,就是在屬性注入的時候,能夠將配置的string型別轉為bean屬性真正的型別。例如在spring的xml配置檔案中配置 這裡配置的configlocation看起來是個位址,是字串型別,但是在sqlsessionfactorybean中是resource型別 private r...
swift之給拓展Category增加屬性
使用 category 擴充套件現有的類的功能的時候,直接新增例項變數這種行為是不被允許的,這時候一般就使用 property 配合 associated object 的方式,將乙個物件 關聯 到已有的要擴充套件的物件上。進行關聯後,在對這個目標物件訪問的時候,從外界看來,就似乎是直接在通過屬性訪...