Kann ich ein JSON-Array als Parameter für eine IN
-Klausel mit MySQL (Version 5.7 und höher, als JSON-Unterstützung) verwenden?MySQL JSON-Array zur Verwendung in "IN" -Klausel?
Unten finden Sie den Code ein, den ich nicht ganz kann bekommen arbeiten ...
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;
Sie können nicht. Dies würde dynamisch Build (String) und ausgeführte Abfrage erfordern. Wie Sie es geschrieben haben, ist es nur ein einzelner "TEXT" -Wert. Verwenden Sie stattdessen [diese Funktionen] (https://dev.mysql.com/doc/refman/5.7/en/json-search-functions.html). –
@KamilG. Danke Kamil – aero