programing

SQL 쿼리를 JSON 형식의 텍스트 파일로 내보내기

goodsources 2022. 10. 21. 23:01
반응형

SQL 쿼리를 JSON 형식의 텍스트 파일로 내보내기

SQL 명령을 실행하고 결과를 JSON 형식의 텍스트 파일로 내보내는 방법이 필요합니다.

다음 링크가 있습니다.https://falseisnotnull.wordpress.com/2014/11/23/creating-json-documents-with-mariadb/

그러나 나는 그의 진술의 CREATE_COLUMN 섹션과 그가 내 DB와 어떻게 관련되어 있는지 이해하기 위해 사용하는 용어를 이해하지 못한다.

누가 이런 질문에서 그의 예를 간략하게 해줄 수 있나요?

SELECT * FROM thisismy.database;

INTO OUTFILE 명령어로 위의 작업을 수행하면 다음과 같은 데이터가 생성됩니다.

1     Armand         Warren   56045   Taiwan, Province of China   0        0
2      Xenos    Salas        71090        Liberia        0                0
3      Virginia   Whitaker   62723   Nicaragua   0                       0
4      Kato Patrick   97662   Palau   0                       0
5      Cameron      Ortiz P9C5B6   Eritrea 0                0

하지만 난 이렇게 생겼으면 좋겠어

{ "aaData": [
    [ "1", "Armand", "Warren", "56045", "Taiwan, Province of China" ],
    [ "2", "Xenos", "Salas", "71090", "Liberia" ],
    [ "3", "Virginia", "Whitaker", "62723", "Nicaragua" ],
    [ "4", "Kato", "Patrick", "97662", "Palau" ],
    [ "5", "Cameron", "Ortiz", "P9C 5B6", "Eritrea" ]
] }

좋은 의견이라도 있나?

감사해요.

편집: 도움이 된다면 MariaDB를 실행합니다.

SELECT CONCAT('[\n\t', GROUP_CONCAT(
        COLUMN_JSON(
            COLUMN_ADD(
                COLUMN_CREATE('id', id)
                , 'name', name
                , 'price', price
            )
        )
        ORDER BY id
        SEPARATOR ',\n\t'
    ), '\n]') AS json
    FROM product \G

를 제외한 모든 것을 무시COLUMN_CREATE여기서 JSON이 생성됩니다.자, 여기 있습니다.

COLUMN_JSON(
        COLUMN_ADD(
            COLUMN_CREATE('id', id)
            , 'name', name
            , 'price', price
        )
    )

COLUMN_ADD열을 JSON에 추가하는 함수입니다.각 인수는 값과 쌍을 이루는 키입니다.그렇게'name'JSON 오브젝트의 키가 되는 것과name그 가치가 무엇이 되느냐가 문제죠.이 경우 컬럼입니다.name식탁에서product.

예를 들어, 당신이 그 정보를 조회하고 싶다고 가정해 봅시다.users테이블에서 이름, 성, 신분증을 얻을 수 있습니다.쿼리는 다음과 같습니다.

SELECT CONCAT('[\n\t', GROUP_CONCAT(
        COLUMN_JSON(
            COLUMN_ADD(
                COLUMN_CREATE('id', id)
                , 'first_name', first_name
                , 'last_name', last_name
            )
        )
        ORDER BY id
        SEPARATOR ',\n\t'
    ), '\n]') AS json
    FROM users \G

그리고 마지막에는COLUMN_JSON우리가 가지고 있는 명령어AS json원하는 JSON 유형으로 캐스팅합니다.

sql2json(나는 python 패키지를 만들었다)을 사용할 수 있습니다.

python3 -m sql2json --name mysql --query "SELECT a, b from my_table" --wrapper --output myoutputfile.json

다음과 같은 이점을 얻을 수 있습니다.

{
    data: [
        {
            "a": 1,
            "b": 5
        },
        {
            "a": 2,
            "b": 10
        }
    ]
}

sql2json은 무료이며 github에서 호스팅됩니다.https://github.com/fsistemas/sql2json

언급URL : https://stackoverflow.com/questions/45364453/export-sql-query-to-json-formatted-text-file

반응형