gpt4 book ai didi

MySQL:如何在 WHERE..IN 子句中使用 JSON_ARRAY?

转载 作者:行者123 更新时间:2023-11-29 06:25:50 24 4
gpt4 key购买 nike

有没有办法在 WHERE..IN 子句中使用 JSON_ARRAY

例如,以下是 JSON_ARRAY

SET @codes := JSON_ARRAY('CA' , 'NY' , 'TX');

我需要做如下的事情:

SELECT * FROM `state` WHERE `code` IN (@codes);

最佳答案

如果你的mysql版本高于8.0你可以尝试使用JSON_TABLE ,让您的 JSON 数组到数据行,然后执行 in 逻辑。

架构 (MySQL v8.0)

CREATE TABLE `state`  (
`code` VARCHAR(50)
);

INSERT INTO `state` VALUES ('C1');
INSERT INTO `state` VALUES ('CA');
<小时/>

查询#1

SET @codes := JSON_ARRAY('CA' , 'NY' , 'TX');

SELECT *
FROM `state`
WHERE `code` IN (
SELECT val
FROM JSON_TABLE(
@codes,
"$[*]"
COLUMNS(
val varchar(50) PATH "$"
)
) data
);

| code |
| ---- |
| CA |
<小时/>

View on DB Fiddle

关于MySQL:如何在 WHERE..IN 子句中使用 JSON_ARRAY?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59525548/

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