在 Windows 10 64、MySQL 5.6 下 基于当前表中的其他字段值进行拼接,进而修改另一个字段值的流程

1、最终期望结果为:修改 player 表中的 avatar,其值为:/storage/web/app/player_avatar/GZHOU/579365.jpg,其中 GZHOU 为当前记录字段 team_code 的值、579365 为当前记录字段 code 的值,如图1

图1

2、先修改一条记录的 avatar,其SQL语句执行成功,如图2
UPDATE `kq_player` SET `avatar` = concat(‘/storage/web/app/player_avatar/’,`team_code`,’/’,`code`,’.jpg’) WHERE `code` = ‘389345’;

图2

3、刷新之后,查看执行结果,发现code为389345的记录的 avatar,其值为:/storage/web/app/player_avatar/GZHOU/389345.jpg,修改成功,符合预期,如图3

图3

4、查看修改所有记录前的记录,avatar为空,如图4

图4

5、准备修改所有记录的 avatar,去掉 WHERE 条件,其SQL语句执行成功,如图5
UPDATE `kq_player` SET `avatar` = concat(‘/storage/web/app/player_avatar/’,`team_code`,’/’,`code`,’.jpg’);

图5

6、查看修改所有记录后的记录,avatar已经不为空,修改成功,符合预期,如图6

图6

7、搜索 avatar 字段,查看其是否包含空格,如图7

图7

8、SQL语句执行成功,确实存在一些记录包含空格,如图8
/storage/web/app/player_avatar/LIFAN /974218.jpg

图8

9、决定先清除 team_code 字段中的空格,再执行修改 avatar 字段的SQL,其SQL语句执行成功,如图9
UPDATE `kq_player` SET `team_code` = replace(`team_code`,’ ‘,”);
UPDATE `kq_player` SET `avatar` = concat(‘/storage/web/app/player_avatar/’,`team_code`,’/’,`code`,’.jpg’);

图9

10、搜索 avatar 字段,查看其是否包含空格,返回零行,如图10

图10

永夜