在没有where条件的情况下循环更新列值

时间:2015-10-29 07:31:45

标签: mysql

我的下表有大约15.000行:

+--------------+-------------+
| member_index | member_id   |
+--------------+-------------+
|        59084 |             |
|       155647 | -8zkkozg    |
|       140550 | -sanofi-    |
|       153323 | ..pgdpta    |

我需要遍历每一行以更新没有where条件的member_index或where更新类似偏移,只需要从第一条记录循环到结束以更新它

这不可能吗?

//更新expecte输出:

+--------------+-------------+
| member_index | member_id   |
+--------------+-------------+
|   59084_abcd |             |
|   55647_efgh | -8zkkozg    |
|  140550_ijkl | -sanofi-    |
|  153323_gmop | ..pgdpta    |

附加部分(_efgh ...)来自程序

declare append varchar(20)
CALL getAppendPart(append)

for loop ..//this part what I need to ask

   UPDATE table tbl set member_index = concat(member_index ,append)

1 个答案:

答案 0 :(得分:0)

使用MySQL concat(): -

update table set member_index=concat(member_index,'_',
substring('ABCDEFGHIJKLMNOPQRSTUVWXYZ', 
rand(@seed:=round(rand(@lid)*4294967296))*36+1, 4))