根据同一个表中另一列的值更新列

时间:2015-01-19 21:20:31

标签: mysql

根据同一个表中另一列SERIAL和YEAR_ADMITTED的值更新列REGNO。

SERIAL | REGNO | YEAR_ADMITTED | FULL_NAME
---------------------------------------------
0001   |       |  2011         | LUM Anye
1009   |       |  2014         | Hans Musah

2 个答案:

答案 0 :(得分:1)

根据Fabricator的建议修改为包含where子句,因此您不会覆盖现有的REGNO。

UPDATE students SET REGNO = CONCAT( year_admitted, SERIAL )
WHERE REGNO IS NULL OR REGNO=''

如果它不是字符串

,您可能必须CAST year_admitted
UPDATE students SET REGNO = CONCAT( CAST(year_admitted as CHAR), SERIAL )
WHERE REGNO IS NULL OR REGNO=''

答案 1 :(得分:0)

UPDATE `students` SET `REGNO` = ( SELECT CONCAT( YEAR( `year_admitted` ) , `SERIAL` ) )
WHERE SERIAL = SERIAL