我对我正在进行的一个项目(在MariaDB 10.1.37上)进行了查询:
SELECT * FROM table WHERE REGEXP_REPLACE(substring_index(product,' ',1), '[^a-zA-Z ]', '')='VALUE'
目标是:
1)从值选择部分到第一个空格:示例VALUE1 SOME OTHER
以获取VALUE1
2)要删除数字和任何其他符号:示例VALUE1
以获取VALUE
上面的查询可以根据需要完成任务!
问题是客户端有MySQL 5.7.27,我们知道REGEXP_REPLACE()来自8+版本的MySQL
目前还没有将客户端升级到MySQL 8+或迁移到MariaBD的选项,因此问题是我如何以及能否在MySQL 5.7.27中实现相同的结果?
我试图搜索并尝试WHERE substring_index(product,' ',1) REGEXP '^a-zA-Z' = 'VALUE'
,但REGEXP返回1或0,它不是什么为我工作,因为我需要的值。
有什么帮助吗?
提前感谢!
3条答案
按热度按时间hmmo2u0o1#
“我也一直在寻找解决方案,因为我的伙伴们使用的是MYSQL 5.5,因此他们也没有REGEXP_REPLACE()。
很容易在stackOverFlow上找到替换一个字符的解决方案,但无法找到替换字符串的解决方案,因此我创建了这段代码,它可以帮助某些人:
nhaq1z212#
这不是一个最终的答案,如果有人有一个很好的或更接近的例子,我问,然后去吧,并张贴一个答案。我想看到它!
我所做的就是使用
LIKE
我知道在某些情况下这可能会显示错误的数据,但对于我的需要,这种方式是可以接受的。
8qgya5xd3#
这在MySQL 5.7中有效...此示例将从URL的查询字符串中提取UTM_Source参数值: