gpt4 book ai didi

MySQL JSON 数组中的Where in 条件

转载 作者:行者123 更新时间:2023-11-29 10:49:33 25 4
gpt4 key购买 nike

它正在工作,但只返回一条记录。我总共有 5 个。

Catalog.similar是json类型字段。我从返回中删除 [""] 并将其放入 WHERE IN 条件中。但我只得到一条记录。

SELECT * FROM similar_codes a WHERE a.id IN (SELECT REPLACE(SUBSTR(c.similar,2,LENGTH(c.similar)-2),'"','') FROM catalog c WHERE c.id=1)

从 WHERE IN 内的选择返回。

SELECT REPLACE(SUBSTR(c.similar,2,LENGTH(c.similar)-2),'"','') FROM catalog c WHERE c.id=1)

3380, 3382, 1952, 3384, 3383

最佳答案

与其尝试开发自己的方式来搜索 JSON,为什么不使用内置函数呢?或者,如果您使用的 MySQL 版本不支持 JSON 数据,那么您最好考虑使用链接表。

-- Create main table
CREATE TEMPORARY TABLE test (id INT(11));
INSERT INTO test (id) VALUES (3380), (3382), (1952), (3384), (3383);

-- Create JSON table
CREATE TEMPORARY TABLE test_search (id INT(11), similar JSON);
INSERT INTO test_search (id, similar) VALUES (1, JSON_ARRAY(3380, 3382, 1952, 3384, 3383));

-- Select
SELECT t.id
FROM (SELECT similar AS ids FROM test_search WHERE id = 1) ts
INNER JOIN test t ON JSON_CONTAINS(ts.ids, CAST(t.id AS json), '$');

关于MySQL JSON 数组中的Where in 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43979625/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com