MySQL使用select using子字符串locate更新列值

MySQL使用select using子字符串locate更新列值,mysql,sql,Mysql,Sql,我的表中有一列名为cea_no,示例数据如下:R017722B/L3009740K。 我只想像R017722B这样更新列值。我已经有一个查询,通过使用以下查询将值剪切或修剪到此CEA:R017722B/: select cea_no, substring(cea_no, 1, locate('/', cea_no)) as x from xp_guru_listings 问题:如何使用该值更新每一行。我已经试过了 UPDATE xp_guru_listings set cea_no = (s

我的表中有一列名为cea_no,示例数据如下:R017722B/L3009740K。 我只想像R017722B这样更新列值。我已经有一个查询,通过使用以下查询将值剪切或修剪到此CEA:R017722B/:

select cea_no, substring(cea_no, 1, locate('/', cea_no)) as x from xp_guru_listings
问题:如何使用该值更新每一行。我已经试过了

UPDATE xp_guru_listings set  cea_no = (select substring(cea_no, 1, locate('/', cea_no)))
from xp_guru_listings;
它说的是语法错误。谁能告诉我该怎么办?谢谢

错误代码:

1064-您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册,以了解第2行“来自xp\u guru\u listings”附近使用的正确语法


如果cea列中的每个值都包含/斜杠字符,请尝试以下操作

UPDATE xp_guru_listings set cea_no = substring(cea_no, 1, locate('/', cea_no))
from xp_guru_listings;

请发布完整的错误消息,事情会进展得更快更新xp_guru_列表集cea_no=substringcea_no,1,locate'/',cea_no;请使用上述方法。我们需要从上述语句中删除from子句好的,它可以工作。谢谢为什么我在放置where子句时会出错?太好了。。子查询返回的记录超过1条。因此,它无法更新一行。如何通过053784i而不是CEA:R053784I获取或更新所有行/
UPDATE xp_guru_listings set cea_no = substring(cea_no, 1, locate('/', cea_no))
from xp_guru_listings;