gpt4 book ai didi

Mysql 仅返回列中的模式匹配

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

我有一个包含产品描述的专栏。我想使用正则表达式对此列进行搜索,并且仅返回正则表达式中的匹配项,而不是该列的完整内容。

即我有一个描述

This magnificent bead is high on detail

The bracelet has a magnetic closure

SELECT description FROM products WHERE description RLIKE"'magn.*\s"

这应该返回宏伟磁性

SELECT description FROM products WHERE description RLIKE"'magni.*\s"

这应该返回宏伟

当然,当前的查询会返回完整的描述。有任何指示我可以如何做到这一点。 MYSQL 5.5

最佳答案

如果您使用的是 MySQL 8.0 版本,则可以使用 regexp_substr() 来实现此目的。此功能在早期版本中不可用。

https://dev.mysql.com/doc/refman/8.0/en/regexp.html#function_regexp-substr

更新

这是它的另一个破解,应该对 5.5 友好。假设提供的正则表达式位于所需匹配的开头。

SELECT 
SUBSTRING_INDEX(
SUBSTRING(`description`, LOCATE('magni', `description`)), ' ', 1)
FROM table1
WHERE `description` REGEXP 'magni';

还有一个 8.0 版本的工作示例,供支持我之前工作的人使用

SELECT REGEXP_SUBSTR('Those magnificent men in their flying machines', '[[:space:]]magni[^ ].*[[:space:]]');

关于Mysql 仅返回列中的模式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51436420/

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