我的表中有一个名为cea_no
的列。但我只想要其中的特定字符串。我已经尝试了几种方法,但它对我不起作用。你知道我怎样才能做到这一点吗?
这是我的查询
select id, cea_no, substring(cea_no, 1, locate('/', cea_no)) as x from xp_guru_listings limit 10;
结果
+----+-----------------------------+------------------+
| id | cea_no | x |
+----+-----------------------------+------------------+
| 1 | "CEA: R017722B / L3009740K" | "CEA: R017722B / |
| 2 | "CEA: R016023J / L3009793I" | "CEA: R016023J / |
| 3 | "CEA: R011571E / L3002382K" | "CEA: R011571E / |
| 4 | "CEA: R054044J / L3010738A" | "CEA: R054044J / |
| 5 | "CEA: R041180B / L3009250K" | "CEA: R041180B / |
| 6 | "CEA: R030152G / L3008022J" | "CEA: R030152G / |
| 7 | "CEA: R057318G / L3008022J" | "CEA: R057318G / |
| 8 | "CEA: R043256G / L3002382K" | "CEA: R043256G / |
| 9 | "CEA: R026068E / L3002382K" | "CEA: R026068E / |
| 10 | "CEA: R053784I / L3008022J" | "CEA: R053784I / |
+----+-----------------------------+------------------+
我只想要R017722B
部分。 删除"CEA:
,字符串/
部分之后的第二组字符串。我该怎么做?多谢。我正在使用MySQL xampp。
我会在这里使用SUBSTRING_INDEX
:
SELECT
id,
cea_no,
select
SUBSTRING_INDEX(SUBSTRING_INDEX(cea_no, 'CEA: ', -1), ' / ', 1) AS x
FROM xp_guru_listings;
要了解此技巧的工作原理,请考虑cea_no
值CEA: R017722B / L3009740K
。 对SUBSTRING_INDEX
的第一次调用返回R017722B / L3009740K
,第二次调用返回R017722B
。
考虑到 Tim Biegeleisen 的回答,如果你想更新所有列,只需像这样编辑他的代码:
UPDATE xp_guru_listings set cea_no =
(select SUBSTRING_INDEX(SUBSTRING_INDEX(cea_no, 'CEA: ', -1), ' / ', 1));
这样,您的列cea_no
将使用所需的值进行更新。干杯!