は、私は整数の表(I)(0-9)を持っている(私も)...私は真剣に解決策としてこれを提唱していないんだけど、楽しみのためだけに
。 ..
DROP TABLE IF EXISTS table_a;
DROP TABLE IF EXISTS table_b;
CREATE TABLE table_a
(id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
,users VARCHAR(100) NULL
);
INSERT INTO table_a VALUES
(1,'["2","5","4"]'),
(2,NULL),
(3,'["5"]');
CREATE TABLE table_b
(id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
,name VARCHAR(12) NOT NULL
);
INSERT INTO table_b VALUES
(2,'Jane'),
(3,'Joe'),
(4,'John'),
(5,'Jack');
SELECT b.name
, GROUP_CONCAT(a.id ORDER BY a.id+0) ids
FROM table_b b
LEFT
JOIN
(SELECT DISTINCT a.id, SUBSTRING_INDEX(SUBSTRING_INDEX(
REPLACE(
REPLACE(
REPLACE(a.users,'"','')
,'[','')
,']','')
,',',i.i+1)
,',',-1)
x
FROM
table_a a,ints i
) a
ON a.x = b.id
GROUP
BY name;
+------+------+
| name | ids |
+------+------+
| Jack | 1,3 |
| Jane | 1 |
| Joe | NULL |
| John | 1 |
+------+------+
あなたの 'users'カラムに実際に' ["2"、 "5"、 "4"] 'という文字列がありますか? –
JSON_ENCODEの結果がわかりません –
もし私がそこに行っていたら、ここからは始まりません:-(json_encodeはこれを不必要に複雑にします – Strawberry