我想更新我的表来替换/插入INITIALS列,第一个名字列中的第一个字母
表名:Mano
Title Firstname Lastname Telephone Inital Gender More columns
1 Mr Adam Smith 001 A
2 Mrs Angela Evans 002 A
3 Mr Bill Towny 003 B
4 Miss Dame Beaut 004 D
我有兴趣按照以下方式对其进行转换
+--------------------------+--------------------------------+
| Variable_name | Value |
+--------------------------+--------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | C:\xampp\mysql\share\charsets\ |
+--------------------------+--------------------------------+
非常感谢
答案 0 :(得分:3)
这看起来很简单update
:
update t
set initials = left(firstname, 1);
我应该指出,你甚至不需要专栏。您可以将其声明为计算列:
alter t add initials as (left(firstname, 1));
这将提供一个名为initials
的列(假设该名称尚未使用),该列始终具有firstname
列的第一个字母 - 没有更新。
答案 1 :(得分:2)
你可以使用子串函数,
SELECT SUBSTR(Firstname, 1, 1) from mango;
希望使用此select语句可以更新表格。
如果您需要更新查询,请告知我们会给您
答案 2 :(得分:1)
添加计算列,永远不会出现不一致:
alter table Mano add Initial as SUBSTR(Firstname, 1, 1)
答案 3 :(得分:0)
左边是最好的,如果我们使用TRIM来防止额外的空格(如果有的话)会更好:
UPDATE TABLE table1 SET Initial = LEFT(LTRIM(Firstname), 1)