programing

JSON_ARRAY가 마리아에 대한 빈 목록을 보내지 않음DB

skycolor 2023. 8. 10. 18:38
반응형

JSON_ARRAY가 마리아에 대한 빈 목록을 보내지 않음DB

사용할 때 MariaDB(10.3.18)에 문제가 있습니다.JSON_ARRAY함수, 내 하위 쿼리에 결과가 없으면 빈 배열을 제공하지 않고 1개의 null 결과를 가진 배열을 제공합니다.

예:

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다음과 같은 기능:

SELECT REPLACE(JSON_ARRAY(null), "[null]", "[]")

하지만 마리아DB에게 NULL 결과가 아닌 빈 결과를 보내라고 할 말이 있다면 저에게 많은 도움이 될 것입니다!

IFNULL을 사용하는 옵션:

SELECT
  IFNULL(
    (SELECT
      CONCAT('[', GROUP_CONCAT(
        JSON_OBJECT(
          'id', `user`.`id`,
          'name', `user`.`name`
        )
      ), ']')
    FROM `user`
    WHERE `user`.`active` = true),
    JSON_ARRAY()
  );

dbfidle을 참조하십시오.

언급URL : https://stackoverflow.com/questions/58448522/json-array-not-sending-an-empty-list-on-mariadb

반응형