[英]extracting previous word from string in SQL
我有一张带有员工传记的 SQL 表。
其中一列名为传记。
一些条目描述了员工在公司工作了多少年。
一个例子:
“Gary 为我们工作了 8 年”
我想提取每个员工为公司工作的年数。
我需要一个 sql 查询,它将为每个条目识别单词“years”,将前一个单词提取为 INT,并将此数字作为新列存储在同一行中。
有人可以帮我解释一下如何为我做这件事吗?
谢谢。
MySQL SUBSTRING_INDEX()
在出现指定数量的分隔符之前从给定字符串返回 substring。
句法:
SUBSTRING_INDEX(string, delimeter, 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.