如何删除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);