[英]JSON_ARRAY not sending an empty list on MariaDB
當我使用JSON_ARRAY
function 時,我在 MariaDB (10.3.18) 中遇到問題,如果我的子查詢沒有任何結果,它不會給我一個空數組,它會給我一個包含 1 個 Z307A625ECC64C1Z307A625ECC648 的數組。
示例:
SELECT JSON_ARRAY() // -> [] this is what I want to obtain
SELECT JSON_ARRAY((
SELECT GROUP_CONCAT(
JSON_OBJECT(
'id', id,
'name', name
)
)
FROM user
WHERE user.acive = TRUE
)) // -> [null] If I don't have any result
目前,我找到了一種通過使用REPLACE
function 來解決這個問題的方法,如下所示:
SELECT REPLACE(JSON_ARRAY(null), "[null]", "[]")
但是,如果有什么要告訴 MariaDB 發送一個空結果而不是 NULL 結果它可以幫助我很多!
您可以使用JSON_ARRAY_AGG
function 來構建 JSON。 如果沒有找到可以替換為[]
的匹配行,它將返回 NULL :
SELECT COALESCE(JSON_ARRAYAGG(JSON_OBJECT('id', id, 'name', name)), '[]')
FROM t
WHERE active = 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.