MySQL substring_index 在空格后删除字段中的所有内容
Posted
技术标签:
【中文标题】MySQL substring_index 在空格后删除字段中的所有内容【英文标题】:MySQL substring_index Delete Everything In Field After Space 【发布时间】:2021-06-09 23:24:23 【问题描述】:我有一个名为 subscribers 的表,其名称字段包含如下数据:
汤姆·琼斯
德鲁·布雷斯
汤姆·布雷迪三世
我需要删除每条记录的第一个空格之后的所有内容,使其看起来像:
汤姆
画了
汤姆
Using this question,我组装了以下查询:
从订阅者中选择 substring_index(name,' ',1) 作为 deleteAllAfterSpace
我收到以下错误:
当前选择不包含唯一列。
当我跑步时:
SELECT * FROM subscribers
WHERE INSTR(name
, ' ') > 0
我确实得到了我正在寻找的值。
我可以向你保证,名称列是唯一的吗?我做错了什么?
【问题讨论】:
你能提供更多的上下文吗?也许DESCRIBE subscribers
输出?表中只有那 3 行吗?这有帮助吗? ***.com/questions/18922503/…
@richyen 在名为 id 的列上有一个主键。当我运行 SELECT * FROM subscribers
WHERE INSTR(name
, ' ') > 0 时,我得到了我正在寻找的记录。
我认为这是您使用的网格视图客户端的错误。它希望每一行都有一些可以唯一标识给定行的列。但是您要返回的一列有重复项。也许您正在使用 phpMyAdmin?
你没有选择你是 uzpdatein 并且 name 是唯一的或主键,所以 tom 只能出现一次
@BillKarwin 是的......这是我唯一的访问权限。 phpMyAdmin 有解决办法吗?
【参考方案1】:
SELECT name, subString(name, 1, POSITION(' ' IN name)) as deleteAllAfterSpace
FROM subscribers;
这就是你的全部
【讨论】:
这实际上并没有对每条记录的列数据进行更改。它只显示数据。 问题出在 myPHPAdmin 上,本机运行,一切正常。谢谢!以上是关于MySQL substring_index 在空格后删除字段中的所有内容的主要内容,如果未能解决你的问题,请参考以下文章
mysql函数之SUBSTRING_INDEX(str,"/",-1)
使用mysql的SUBSTRING_INDEX函数解决项目中编码非重复问题的实现方案!