gpt4 book ai didi

MYSQL REGEX 搜索多个单词,无顺序条件

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

我尝试使用 mysql 的正则表达式来搜索 json 数组字符串中的边界单词,但我不希望正则表达式匹配单词顺序,因为我不知道它们。

所以我首先开始在 regex101 ( https://regex101.com/r/wNVyaZ/1 ) 上编写我的正则表达式,然后尝试将其转换为 mysql。

WHERE `Wish`.`services` REGEXP '^([^>].*[[:<:]]Hygiène[[:>:]])([^>].*[[:<:]]Radiothérapie[[:>:]]).+';
WHERE `Wish`.`services` REGEXP '^([^>].*[[:<:]]Hygiène[[:>:]])([^>].*[[:<:]]Andrologie[[:>:]]).+';

在第一个查询中,我得到结果,因为“Hygiène”在“Radiothérapie”之前,但在第二个查询中,“Andrologie”在“Hygiène”之前,而不是像查询中所写的那样在之后。问题在于,查询是自动生成的,其中包含选择的服务列表,这些服务没有顺序重要性,并且我只想匹配边界词(如果它们存在),无论它们的顺序如何。

最佳答案

您可以像下面这样在 JSON 中搜索单词(我在 MySQL 5.7 上测试过):

select * from wish 
where json_search(services, 'one', 'Hygiène') is not null
and json_search(services, 'one', 'Andrologie') is not null;

+------------------------------------------------------------+
| services |
+------------------------------------------------------------+
| ["Andrologie", "Angiologie", "Hygiène", "Radiothérapie"] |
+------------------------------------------------------------+

参见https://dev.mysql.com/doc/refman/5.7/en/json-search-functions.html#function_json-search

关于MYSQL REGEX 搜索多个单词,无顺序条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55324962/

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