character_set_client ,这是用户告诉MySQL查询是用的什么字符集。 character_set_connection ,MySQL接受到用户查询后,按照character_set_client将其转化为character_set_connection设定的字符集。 character_set_results , MySQL将存储的数据转换成character_set_results中设定的字符集发送给用户。 DISCUZ并没有使用set NAMES character SET NAMES 'x'语句与这三个语句等价: mysql> SET character_set_client = x; mysql> SET character_set_results = x; mysql> SET character_set_connection = x; 而DISCUZ里面是 SET character_set_client = binary;使用二进制字符集查询 此三处的字符设定很大程度上会解决乱码问题,那么着三个设定具体有什么作用呢? character_set_client指定的是Sql语句的编码,如果设置为 binary,mysql就当二进制来处理,character_set_connection指定了mysql 用来运行sql语句的时候使用的编码,也就是说,程序发送给MySQL 的SQL语句,会首先被MySQL从character_set_client指定的编码转换到character_set_connection指定的编码,如果character_set_clien指定的是binary,则MySQL就会把SQL语句按照character_set_connection指定的编码解释执行. 当执行SQL语句的过程中,比如向数据库中插入字段的时候,字段也有编码设置,如果字段的编码设置和character_set_connection指定的不同,则MySQL 会把插入的数据转换成字段设定的编码。SQL语句中的条件判断和SQL插入语句的执行过程类似. 当SQL执行完毕像客户端返回数据的时候,会把数据从字段指定的编码转换为character_set_results指定的编码,如果character_set_results=NULL 则不做任何转换动作,(注意这里设置为NULL不等于没有设置,没有设置的时候MySQL会继承全局设置), 工作中比较有用的就是利用MySQL进行转码、不同编码的数据库之间共用数据。
推荐整理分享MySQL 编码机制(mysql数据库编码),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:mysql5.7设置编码,mysql编码查询,mysql编码问题,mysql数据库编码,mysql编码方式,mysql编码查询,mysql编码方式,mysql编码方式,内容如对您有帮助,希望把文章链接给更多的朋友!
CMS不要让MySQL为你流泪 那么,MySQL的数据量到底能支持多少呢?其实MySQL单表的上限,主要与操作系统支持的最大文件大小有关。我们来看一下官方的介绍。1.4.4.MySQL表最大能
MySQL 数据类型和建库策略 一、数字类型。数字类型按照我的分类方法分为三类:整数类、小数类和数字类。我所谓的数字类,就是指DECIMAL和NUMERIC,它们是同一种类型。它严格
MYSQL 数据库命名与设计规范 1.设计原则1)标准化和规范化数据的标准化有助于消除数据库中的数据冗余。标准化有好几种形式,但ThirdNormalForm(3NF)通常被认为在性能、扩展性和数