gpt4 book ai didi

mysql - 如何获取 MySQL 中最后一次出现字符之前的所有内容?

转载 作者:可可西里 更新时间:2023-11-01 07:57:54 26 4
gpt4 key购买 nike

我想从列中获取特定字符最后一次出现之前的所有内容。

具有负值的

SUBSTRING_INDEX 适用于分隔,但会返回我要删除的字符串部分。例如,将列视为

first. second. third. fourth

SUBSTRING_INDEX(Col1, '.', -1) 返回 fourth,但我想得到

first. second. third.

事实上,我想通过删除最后一次出现的 . 之后的所有内容来更新同一个列。换句话说,我想删除 SUBSTRING_INDEX(Col1, '.', -1) 部分,但我不能简单地使用 REPLACE as

UPDATE table1 SET Col1=REPLACE(Col1,SUBSTRING_INDEX(Col1, '.', -1),'')

因为它可能出现在字符串的其他部分。

最佳答案

这是一个技巧,利用 REVERSE 函数:

UPDATE yourTable
SET col =
REVERSE(SUBSTRING(REVERSE(col), INSTR(REVERSE(col), '.')))

Demo

这里的想法是反转字符串,然后使用 INSTR 找到最后一个(现在是第一个)点的位置。然后,我们从该位置到开头进行子串,然后再次反转。

关于mysql - 如何获取 MySQL 中最后一次出现字符之前的所有内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54821318/

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