programing

저는 json 데이터를 가진 authorsjson이라는 JSON 컬럼을 가지고 있습니다.이름이 지정된 문자열로 시작하는 모든 사용자를 찾습니다.

goodcopy 2022. 11. 7. 22:43
반응형

저는 json 데이터를 가진 authorsjson이라는 JSON 컬럼을 가지고 있습니다.이름이 지정된 문자열로 시작하는 모든 사용자를 찾습니다.

일반 열과 json 데이터가 들어 있는 열이 모두 있는 하이브리드 데이터베이스가 있습니다.작성자란에 이 데이터가 있습니다.

{
                "profileUrl": "https://disqus.com/by/mnaid-233509073ed3432027d48b1a83f5fbd2/",
                "isPrivate": false,
                "isPrimary": true,
                "about": "",
                "username": "mnaid-233509073ed3432027d48b1a83f5fbd2",
                "url": "",
                "id": "250728493",
                "isAnonymous": false,
                "location": "",
                "isPowerContributor": false,
                "signedUrl": "",
                "joinedAt": "2017-05-03T10:40:52",
                "disable3rdPartyTrackers": true,
                "name": "baggiebuoy"
            }

"목표는 이름이 지정된 문자열로 시작하는 모든 사용자를 찾는 것입니다."

다음은 sql 쿼리 시도입니다.

SELECT JSON_EXTRACT(authorsjson, '$.name') 
FROM altthree 
WHERE JSON_EXTRACT(authorsjson, '$.name') like 'b%' ;

비어 있는 열이 하나 표시됩니다.내가 이걸 어떻게 작동시킬지 아는 사람?

JSON_UNQUOTE를 사용하려면 검색 문자열 앞에 큰따옴표를 추가해야 합니다.

SELECT JSON_EXTRACT(authorsjson, '$.name')
FROM altthree 
WHERE JSON_UNQUOTE(JSON_EXTRACT(authorsjson, '$.name')) like 'b%' ; 

접근법이 거의 정상인 것 같습니다. 단지 '이름' 필드가 한 단계 더 깊게 중첩되어 있을 뿐입니다. 세 번째 줄을 다음과 같이 수정해 보십시오.

WHERE JSON_EXTRACT(authorsjson, '$.author.name') like 'b%' ;

언급URL : https://stackoverflow.com/questions/55891522/i-have-a-json-column-called-authorsjson-which-has-json-data-i-want-to-find-all

반응형