mysql - 如何使用 REGEX 提取字符串的一部分并将其添加到另一列然后分组?
问题描述
我之前在谷歌表格中使用过正则表达式来添加另一列,例如:
PROP BAKERY (47) / PROPRIETARY BAKERY (60) / RESALE BREAD (950)
为达到这个:
PROP BAKERY (47)
使用:
REGEXEXTRACT([range],"[^.*/]+"
如何在 mySQL 中执行此操作,以便我可以: 使用提取的文本创建另一列?
任何帮助将不胜感激,谢谢。
更新:我忘了提到文本可以是可变的,因此为什么在谷歌表格中需要正则表达式。以下是一些其他示例:
道具烘焙 (47) / 专有烘焙 (60) / 转售面包 (950) 杂货 (5) / 清洁剂 (52) / 洗碗剂 (208) 生产 (30) / 生产 - 蔬菜 (101) / 有机蔬菜 (1043)
解决方案
在这里使用SUBSTRING_INDEX
:
SELECT SUBSTRING_INDEX(col, ' / ', 1)
FROM yourTable;
演示
您还可以使用正则表达式替换方法,并删除模式\s*/.*$
:
SELECT REGEXP_REPLACE(col, '\\s*/.*$', '')
FROM yourTable;
推荐阅读
- roblox - 我怎样才能使人形生物可被杀死并重生?(罗布乐思)
- windows - 如何以编程方式模拟文件损坏以测试 ReFS 健康检查和恢复功能?
- sql-server - 包含在(@start,@end)VS BETWEEN - 临时表中
- web-crawler - 针对特定语言内容的 Apache Nutch 排名算法
- java - 尝试访问方法时出现空指针异常(java)
- json - 我从 i18n aurelia 收到一个错误
- java - 如何从java中的方法返回字符串
- keycloak - Keycloak:登录禁用用户提供 HTTP 400(错误请求)
- python - 如何在列表中创建列表,其中每个未来列表都由列表中的空格分隔
- css - 按钮:Safari 上的活动样式问题