MySQL校对集问题

MySQL校对集问题

校对集:数据比较的方式

校对集有三种格式

_bin:binary,二进制比较,取出二进制位,一位一位的比较,区分大小写
_cs:case sensitive , 大小写敏感,区分大小写
_ci:case insensitice,大小写不敏感,不区分大小写

查看数据库所支持的校对集

-- 查看所有校对集
Show collation; 

这里写图片描述
校对集应用:只有当数据产生比较的时候,校对集才会生效
这里写图片描述

对比使用utf8的_bin 和 ci

-- 创建表使用不同的校对集

Create table my_collate_bin(
Name char(1)
)charset utf8 collate utf8_bin;
-- 创建表使用不同的校对集

Create table my_collate_ci(
Name char(1)
)charset utf8 collate utf8_general_ci;

插入数据

Insert into my_collate_bin values(‘a’),(‘A’),(‘B’),(‘b’);
Insert into my_collate_ci values(‘a’),(‘A’),(‘B’),(‘b’);

这里写图片描述
比较:根据某个字段进行排序:order by 字段名 [asc desc]; asc 升序,desc 降序,默认是升序

-- 排序查找

Select * from my_collate_ci order by name;
Select * from my_collate_bin order by name;

这里写图片描述

校对集:必须在没有数据之前声明好,如果有了数据在进行校对集的修改,则无效。

-- 有数据后修改校对集
Alter table my_collate_ci collate = utf8_bin;

这里写图片描述

Web乱码问题

动态网站有三部分构成:浏览器,Apache服务器,数据库服务器,三部分都有自己的字符集(中文),数据需要在三个部分之间来回传递,很容易产生乱码。

如何解决乱码问题:统一编码(三码合一)

但事实上不可能;浏览器是用户管理(根本不可能控制),但是必须要解决这些问题

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值