IN
절의 매개 변수로 JSON 배열을 사용할 수 있습니까 (JSON을 지원하는 버전 5.7 이상)? 다음은 "IN"절에 사용되는 MySQL JSON 배열?
DROP TABLE IF EXISTS json_table;
CREATE TEMPORARY TABLE json_table(
id INT,
data JSON
);
INSERT INTO json_table (id, data) VALUES (1, "[1,2,3,4,19,20]");
SELECT jt.id, jt.data, REPLACE(REPLACE(jt.data, '[', ''), ']', ''), jt.data->"$[4]"
FROM json_table jt;
SELECT stuff.name
FROM table_stuff stuff
#JOIN json_table jt ON stuff.id IN (1,2,3,4,19,20);
JOIN json_table jt ON stuff.id IN (REPLACE(REPLACE(jt.data, '[', ''), ']', ''));
DROP TABLE IF EXISTS json_table;
수 없습니다. 동적으로 빌드 (문자열) 및 실행 된 쿼리가 필요합니다. 여러분이 작성한 것처럼, 그것은 단지 하나의 'TEXT'값이다. [이 기능들] (https://dev.mysql.com/doc/refman/5.7/en/json-search-functions.html)을 대신 사용하십시오. –
@KamilG. 감사합니다 Kamil – aero