【问题标题】:I want to remove string after space" ", but length is variable and string can be of any length我想在空格“”之后删除字符串,但长度是可变的,字符串可以是任意长度
【发布时间】:2022-01-18 20:40:59
【问题描述】:

我想删除空格' ' 之后的字符串,但是长度是可变的,字符串可以是任意长度。 例如;-

 as full name Nikhil Sharma
              Nikhil Arora
              Digvender Chauhan

我想删除空格后的所有单词

UPDATE MyTable
SET MyText = LEFT(MyText, CHARINDEX(';', MyText) - 1)
WHERE CHARINDEX(';', MyText) > 0

这不起作用 答案是借助 CAse、Regexp。

我们将不胜感激。

【问题讨论】:

  • 你使用的是什么关系型数据库?
  • 如果要搜索空间,为什么要使用';'
  • 只需将';' 更改为' ',WTP?
  • phpmyadmin 我不想搜索空间
  • 实际上,我想删除字符串中空格后的所有字符,如示例中所示

标签: mysql sql substr


【解决方案1】:

在 MySQL 中,函数名称是 LOCATE()。然后搜索' ' 而不是';'

UPDATE MyTable
SET MyText = LEFT(MyText, LOCATE(' ', MyText)-1)
WHERE LOCATE(' ', MyText) != 0

DEMO

解释:

LOCATE(' ', MyText) 返回MyText 中第一个空格的位置。

LEFT(MyText, n) 返回MyText 最左边的n 字符。

因此,如果空格在位置4,我们从该位置减去1,并返回最左边的3 字符。这会删除从空格到字符串末尾的所有内容。

LOCATE() 如果找不到子字符串,则返回0,因此测试WHERE LOCATE(' ', MyText) != 0 使其仅更新列包含空格的行。

【讨论】:

  • 这就是你问的,这就是它的作用。
  • 哪一部分你不明白?
  • 不,这不是我们这里的工作方式。
  • 您可以通过示例发布指向 sqlfiddle.com 的链接。
  • 这只是检查字符串是否有空格,所以如果没有空格,它不会打扰进行替换。
【解决方案2】:
SELECT SUBSTRING_INDEX(column_name, ' ', 1) FROM table_name;

UPDATE table_name SET column_name = SUBSTRING_INDEX(column_name, ' ', 1);

相应地。

【讨论】:

  • 非常感谢先生。这就是我一直在寻找的。​​span>
猜你喜欢
  • 2014-05-08
  • 2021-05-26
  • 1970-01-01
  • 1970-01-01
  • 2017-11-03
  • 2018-11-25
  • 1970-01-01
  • 2012-02-24
  • 1970-01-01
相关资源
最近更新 更多