반응형
json 배열에서 mariadb의 JSON 함수를 사용하여 레코드를 검색하는 방법
저는 마리아에서 JSON 기능을 배우고 있습니다.내가 있는 DB
CREATE TABLE IF NOT EXISTS products (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
type VARCHAR(1) NOT NULL,
name VARCHAR(40) NOT NULL,
format VARCHAR(20) NOT NULL,
price FLOAT(5, 2) NOT NULL,
attr JSON NOT NULL
);
INSERT INTO products (type, name, format, price, attr) VALUES
('M', 'Aliens', 'Blu-ray', 13.99,'{"video": {"resolution": "1080p", "aspectRatio": "1.85:1"}, "cuts": [{"name": "Theatrical", "runtime": 138}, {"name":"Special Edition", "runtime": 155}], "audio": ["DTS HD", "Dolby Surround"]}');
INSERT INTO products (type, name, format, price, attr) VALUES
('B', 'Foundation', 'Paperback', 7.99, '{"author": "Isaac Asimov", "page_count": 296}');
Cuts.name="에서 얼마나 많은 레코드가 있는지 알고 싶습니다."극장판
SELECT * FROM `products` WHERE JSON_VALUE(attr,'$.cuts.name')='Theatrical'
저는 여기서 0개의 결과를 받고 있습니다.json 배열에서 데이터를 검색하는 방법은 무엇입니까?
대괄호[]
배열에 사용해야 합니다.
사용할 수 있습니다.JSON_EXTRACT(attr, "$.cuts[*].name")
안에 내포된.JSON_CONTAINS()
와 함께 일하는.'"Theatrical"'
튜플이 에 대한 것인지 여부를 결정하기 위한 논쟁name
의 요소.cuts
배열 포함'"Theatrical"'
:
SELECT COUNT(*)
FROM `products`
WHERE JSON_CONTAINS( JSON_EXTRACT(attr, "$.cuts[*].name"), '"Theatrical"' )
언급URL : https://stackoverflow.com/questions/61501936/how-to-search-records-using-json-function-in-mariadb-from-json-array
반응형
'sourcetip' 카테고리의 다른 글
C의 함수에서 재할당을 사용하는 방법 (0) | 2023.07.22 |
---|---|
특정 장치에 있는 레코드에 따라 비디오 레코드의 모든 형제를 쿼리합니다. (0) | 2023.07.22 |
오라클 실행 계획 (0) | 2023.07.22 |
TYPO38.7.13 - MariaDB 쿼리 작성기 전체 텍스트 (0) | 2023.07.22 |
C에서 참조로 구조 전달 (0) | 2023.07.22 |