如何删除mysql中的部分字符串?

如何删除mysql中的部分字符串?,mysql,Mysql,在数据库的一个表中,我有如下字符串: sometext-othertext 如何删除包含带SELECT语句的破折号的文本,使结果仅为sometext?在第一次出现分隔符“-”之前返回子字符串: 选择子字符串_索引('foo-bar-bar','-',1)作为结果 输出结果=“foo” 在获取子字符串之前,可以将1替换为所需的出现次数 选择子字符串_索引('foo-bar-bar','-',2)作为结果 输出结果=“foo-bar” 参考资料: 选择REPLACE(“sometext other

在数据库的一个表中,我有如下字符串:

sometext-othertext

如何删除包含带SELECT语句的破折号的文本,使结果仅为
sometext

在第一次出现分隔符“-”之前返回子字符串:

选择子字符串_索引('foo-bar-bar','-',1)作为结果

输出结果=“foo”

在获取子字符串之前,可以将1替换为所需的出现次数

选择子字符串_索引('foo-bar-bar','-',2)作为结果

输出结果=“foo-bar”

参考资料:

选择REPLACE(“sometext othertext”、“-”、“”)作为新值

这应该可以做到。
编辑:


很抱歉没有理解前面的问题。

最好使用mysql替换函数将“-”替换为“

有两种方法可以解决此问题,如果您希望显示全部(仅删除“-”符号),我建议使用此方法,因为速度更快:

SELECT REPLACE('sometext-othertext','-','');
该语法将文本“-”更改为“”(空文本,因为您只想删除该文本)

如果只想显示第1部分(例如:sometext)或第2部分(例如:othertext),可以使用以下命令拆分字符串:

SELECT SUBSTRING_INDEX('sometext-othertext', '-', 1);
只需使用:

SELECT SUBSTRING_INDEX('sometext-othertext', '-', 1);

函数有3个参数,第一个是文本,第二个是用于拆分的对象,第1个是用于获取所需(控制器)

的参数!非常感谢!!参考-不,这将生成
sometextothertext
,而OP需要
sometext
。抱歉-我想是匆忙回答了!选择子字符串\u索引('sometext-othertext','-',1)作为newvalue;这不是全部目标。第一个破折号后面的所有内容都应该删除。对不起,我误解了这个问题。
SELECT SUBSTRING_INDEX('sometext-othertext', '-', 1);