繁体   English   中英

从 SQL 中的字符串中提取前一个单词

[英]extracting previous word from string in SQL

我有一张带有员工传记的 SQL 表。

其中一列名为传记。

一些条目描述了员工在公司工作了多少年。

一个例子:

“Gary 为我们工作了 8 年”

我想提取每个员工为公司工作的年数。

我需要一个 sql 查询,它将为每个条目识别单词“years”,将前一个单词提取为 INT,并将此数字作为新列存储在同一行中。

有人可以帮我解释一下如何为我做这件事吗?

谢谢。

MySQL SUBSTRING_INDEX()在出现指定数量的分隔符之前从给定字符串返回 substring。

句法:

SUBSTRING_INDEX(string, delimeter, count)
  • 字符串:column_name 或常量字符串
  • 分隔符:我们在其前查找前缀的字符串
  • count:搜索分隔符的次数

tablename as test ,将需要更新的列名作为new_column ,将包含字符串的列作为query_string

UPDATE test SET new_column=(SELECT SUBSTRING_INDEX(TRIM(SUBSTRING_INDEX(query_string, 'years', 1)), ' ', -1 ) )

希望这可以帮助!!

在 MySQL 中,您可以使用substring_index()

select substring_index(trim(substring_index(col, 'years', 1)), ' ', -1) 

是一个 db<>fiddle。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM