Chinaunix首页 | 论坛 | 博客
  • 博客访问: 625856
  • 博文数量: 142
  • 博客积分: 116
  • 博客等级: 入伍新兵
  • 技术积分: 1445
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-28 08:37
文章分类

全部博文(142)

文章存档

2017年(7)

2016年(57)

2015年(48)

2014年(30)

我的朋友

分类: Mysql/postgreSQL

2016-03-16 18:05:09

在使用mysql过程中,发现了一个奇怪问题。

当字符集设置为utf8mb4时,执行下面SQL时,返回的多条数据中的uuid是相同的值。
  1. SELECT UPPER(REPLACE(uuid(),'-','')) FROM mysql.user;

UPPER(REPLACE(uuid(),'-',''))
52A8B75CEB5D11E5B180005056920044
52A8B75CEB5D11E5B180005056920044
52A8B75CEB5D11E5B180005056920044
52A8B75CEB5D11E5B180005056920044
而单纯使用uuid()函数则返回值是不同的。
  1. select uuid() from user;

uuid()
be7f8d5f-eb5d-11e5-b180-005056920044
be7f8d9a-eb5d-11e5-b180-005056920044
be7f8da2-eb5d-11e5-b180-005056920044
be7f8daa-eb5d-11e5-b180-005056920044


从现在掌握的现象来看,utf8mb4时,UPPER(REPLACE(uuid(),'-',''))会有问题。
如果执行set names utf8,则上述现象消失。

等待高人指点。

阅读(2149) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~