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

使用mysql的SUBSTRING_INDEX函数解决项目中编码非重复问题的实现方案!

MSSQL:仿写MYSQL的substring_index 截断函数 F_SUBSTRING_INDEX

MySQL字符串截取之substring_index

mysql GROUP_CONCAT+ GROUP BY + substring_index获取分组的前几名