gpt4 book ai didi

mysql - 在 mysql 正则表达式规则中转换正则表达式规则

转载 作者:行者123 更新时间:2023-11-30 21:57:50 24 4
gpt4 key购买 nike

经过一段时间的工作和研究,我找到了检查 [batt, lk, elem] 所有单词是否都在 2 个符号之间的完美规则“;”以任何顺序

在下一个例子中,“句子”被“;”分割,例如:

 ;first sentence; second sentece; third sentence;

正则表达式 -> (?=;.*batt)(?=;.*lk)(?=;.*elem)

真实例子:

; lk Buttle, batt; Probatton with LK elements; -> FOUND

;look Buttle; Proton with LK elements; -> NOT FOUND (not all 3 words are in the first OR in the second sentence)

;Brad Pitt the actor; LK elements in Battle; -> FOUND (the 3 words are in the second sentece)

;Brad Pitt the actor; LK elements in; Battle; -> not FOUND ("Battle" [root:'batt'] is in a different sentence)

将此应用于 mySQL 查询时:

SELECT * FROM `table` pl WHERE pl.`description` REGEXP '(?=;.*batt)(?=;.*lk)(?=;.*elem)'

我发现 regex-lazy-operation 不起作用。

我怎样才能把这个正则表达式变成一个有效的正则表达式?

谢谢

最佳答案

这很贵。您应该认真努力改进/标准化您的数据存储,以便更简单/更快的查询。

pl.`description` REGEXP 'batt[^;]*lk[^;]*elem|[^;]*lk[^;]*elem[^;]*batt'

这假设(根据您的示例输入)elem 始终跟在 lk 之后,并且 batt 可以出现在其他两个子字符串之前或之后.

关于mysql - 在 mysql 正则表达式规则中转换正则表达式规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44474254/

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