如何 select 分解 sql 中的列值
How to select exploded column value in sql
我知道,这可以使用 PHP 轻松完成,但只是好奇,
如何将 mail
字段分解为 select 来自 alias
列的值,第一个分解部分由 @
?
当前:
+-------+-----------------------------------------+
| alias | mail |
+-------+-----------------------------------------+
| | user.one@gmail.com |
| | user.two.foo@gmail.com |
+-------+-----------------------------------------+
期望:
+-------+------------------------------------------------+
| alias | mail |
+-------+------------------------------------------------+
| user.one | user.one@gmail.com |
| user.two.foo | user.two.foo@gmail.com |
+-------+------------------------------------------------+
在伪代码中就像
update tablename set tablename.alias = explode('@', tablename.mail)[0];
在MySQL中,可以使用substring_index()
:
update t
set alias = substring_index(t.mail, '@', 1);
我知道,这可以使用 PHP 轻松完成,但只是好奇,
如何将 mail
字段分解为 select 来自 alias
列的值,第一个分解部分由 @
?
当前:
+-------+-----------------------------------------+
| alias | mail |
+-------+-----------------------------------------+
| | user.one@gmail.com |
| | user.two.foo@gmail.com |
+-------+-----------------------------------------+
期望:
+-------+------------------------------------------------+
| alias | mail |
+-------+------------------------------------------------+
| user.one | user.one@gmail.com |
| user.two.foo | user.two.foo@gmail.com |
+-------+------------------------------------------------+
在伪代码中就像
update tablename set tablename.alias = explode('@', tablename.mail)[0];
在MySQL中,可以使用substring_index()
:
update t
set alias = substring_index(t.mail, '@', 1);