gpt4 book ai didi

mysql - RLIKE 与子查询?

转载 作者:行者123 更新时间:2023-11-29 08:54:05 27 4
gpt4 key购买 nike

我有一个疑问

select X from survey
where survey_date > date_add(curdate(), interval -90 day)

显示哪些 X 是当前的。但不幸的是,由于我无法控制的情况,返回的值不是值列表,而是逗号分隔值列表的列表。所以它返回

| X                  |
+--------------------+
|thing1 |
|thing2,thing3,thing4|
|thing5 |
|thing6,thing7 |

等等。

现在我想用它作为子查询。如果数据是一行一行,我会这样做

select Y from othertable
where irrelevant_conditions && Y not in (
select X from survey
where survey_date > date_add(curdate(), interval -90 day)
);

但这不起作用,因为我可能有,比如 thing3

相反,我需要做RLIKE。 (碰巧数据不能按其形式发生冲突,因此这里不需要额外的正则表达式魔法来检查逗号。)这在 MySQL 中可能吗?

最佳答案

要搜索逗号分隔的字符串,您可以使用 find_in_set 。如果 Y 不是字符串,则会进行隐式转换操作。

select Y from othertable 
where irrelevant_conditions && not exists (
select 1
from survey
where
survey_date > date_add(curdate(), interval -90 day) and
find_in_set(othertable.Y, X) > 0
);

关于mysql - RLIKE 与子查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10437593/

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