mysql怎么批量更新不同记录的同一个字段为不同值

luqing414 2017-10-27 10:07:55
我现在要将一张表里面所有user_id为‘’的记录,将user_id更新为uuid生成的随机数,而且要保证每个都不一样

update store_account set user_id = replace(uuid(), '-', '') where user_id = ''

我这样写的话,就是所有user_id为空的值都是同一个值了,我要怎么改才能做到每个user_id都不一样
...全文
892 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
rucypli 2017-10-27
  • 打赏
  • 举报
回复
mysql> select * from t1; +----+------+ | id | a | +----+------+ | 1 | | | 2 | | | 3 | | | 4 | | | 5 | | | 6 | | | 7 | 1 | +----+------+ 7 rows in set (0.00 sec) mysql> update t1 set a= replace(uuid(), '-', '') where a=''; Query OK, 6 rows affected (0.04 sec) Rows matched: 6 Changed: 6 Warnings: 0 mysql> select * from t1; +----+----------------------------------+ | id | a | +----+----------------------------------+ | 1 | 831fbbb3bac611e780f000155d032600 | | 2 | 831fc275bac611e780f000155d032600 | | 3 | 831fc465bac611e780f000155d032600 | | 4 | 831fc5afbac611e780f000155d032600 | | 5 | 831fc6e3bac611e780f000155d032600 | | 6 | 831fc820bac611e780f000155d032600 | | 7 | 1 | +----+----------------------------------+ 7 rows in set (0.00 sec) 不一样啊每行
听雨停了 2017-10-27
  • 打赏
  • 举报
回复
改成自增的列不就每个值都不一样了
luqing414 2017-10-27
  • 打赏
  • 举报
回复
引用 7 楼 zjcxc 的回复:
[quote=引用 6 楼 luqing414 的回复:] [quote=引用 5 楼 zjcxc 的回复:] 5.7.18 版本上是产生不同的值
不升级版本有办法实现吗?[/quote] 不确定,看你的版本是多少,然后再再基于这个版本来想是否有可行的方法 [/quote] 5.6版本
zjcxc 2017-10-27
  • 打赏
  • 举报
回复
引用 6 楼 luqing414 的回复:
[quote=引用 5 楼 zjcxc 的回复:] 5.7.18 版本上是产生不同的值
不升级版本有办法实现吗?[/quote] 不确定,看你的版本是多少,然后再再基于这个版本来想是否有可行的方法
luqing414 2017-10-27
  • 打赏
  • 举报
回复
引用 5 楼 zjcxc 的回复:
5.7.18 版本上是产生不同的值
不升级版本有办法实现吗?
zjcxc 2017-10-27
  • 打赏
  • 举报
回复
5.7.18 版本上是产生不同的值
luqing414 2017-10-27
  • 打赏
  • 举报
回复
引用 2 楼 rucypli 的回复:
mysql> select * from t1; +----+------+ | id | a | +----+------+ | 1 | | | 2 | | | 3 | | | 4 | | | 5 | | | 6 | | | 7 | 1 | +----+------+ 7 rows in set (0.00 sec) mysql> update t1 set a= replace(uuid(), '-', '') where a=''; Query OK, 6 rows affected (0.04 sec) Rows matched: 6 Changed: 6 Warnings: 0 mysql> select * from t1; +----+----------------------------------+ | id | a | +----+----------------------------------+ | 1 | 831fbbb3bac611e780f000155d032600 | | 2 | 831fc275bac611e780f000155d032600 | | 3 | 831fc465bac611e780f000155d032600 | | 4 | 831fc5afbac611e780f000155d032600 | | 5 | 831fc6e3bac611e780f000155d032600 | | 6 | 831fc820bac611e780f000155d032600 | | 7 | 1 | +----+----------------------------------+ 7 rows in set (0.00 sec) 不一样啊每行
。。。 我是一样的,难道这和版本有关系
luqing414 2017-10-27
  • 打赏
  • 举报
回复
引用 1 楼 qq_37170555 的回复:
改成自增的列不就每个值都不一样了
我不需要自增列,我要uuid的随机32位

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧