mysql length()中文长度一些问题整理

在数据库里用length()来取数据长度的时候汉字有点小问题。

查看到一站长是这样理解length函数的

一句话说明: 获取字符串长度的mysql内置函数

length是mysql的一个用来来获取字符串长度的内置函数方法, 同样的获取字符串长度的还有char_length. length: 是计算字段的长度, utf8编码下,www.111cn.net一个汉字是算三个字符,一个数字或字母算一个字符。其他编码下,一个汉字算两个字符, 一个数字或字母算一个字符。

例子1: 查看mysql字符串的长度 SELECT LENGTH("要查看长度的mysql字段/mysql字符串");

例子2: 根据记录的某个字段长度排序 SELECT * FROM table WHERE 1 ORDER BY LENGTH(name) ASC;

相关: char_length:在任何编码下, 不管汉字还是数字或者是字母都算是一个字符. CHARACTER_LENGTH(str) CHARACTER_LENGTH()是CHAR_LENGTH()的同义词。 BIT_LENGTH(str) 返回2进制长度.

详情说明

mysql:

utf-8 :length()一个汉字3个长度

gbk : length()一个汉字2个长度

oracle:

utf-8 :length()一个汉字3个长度

gbk : length()一个汉字1个长度

字母和数字都是1个长度

char_length()汉字、字母、数字都是1个长度   PHP:mb_strlen($str,'utf8')

查询字符长度可以用

select length('汉') from dual

下面是补充说明length与char_length区别

length:是计算字段的长度一个汉字是算三个字符,一个数字或字母算一个字符
char_length:不管汉字还是数字或者是字母都算是一个字符

时间: 2024-10-28 21:52:44

mysql length()中文长度一些问题整理的相关文章

《MySQL 深入浅出》 1-17章节 阅读整理

链接:http://blog.itpub.net/28602568/viewspace-1622174/ 标题: <MySQL 深入浅出> 1-17章节 阅读整理  作者:lōττéry版权所有[文章允许转载,但必须以链接方式注明源地址,否则追究法律责任.] **  以下提到oracle部分只是对比扩展,本文重点是 <MySQL 深入浅出>书中1-17章节 个人觉得需要提笔一记的知识点整理. **  该书讲解  VERSION() ==>'5.0.18-nt' ,默认引擎 :

实例讲解MySQL数据库中文问题的解决方法

MySQL数据库中文问题的解决方法: 1.my.ini MySQL配置文件设置 [client] default-character-set=gbk [mysqld] default-character-set=gbk 2.启动MySQL服务创建你的数据库 3.验证当前编码 命令行输入: mysql -u root -p 登录你建立的数据库 >connect yourdatabasename 输入数据库状态命令 >status 假如结果如下: Server characterset: gbk

MySQL 物理文件体系结构的简单整理说明

原文:MySQL 物理文件体系结构的简单整理说明   本文出处:http://www.cnblogs.com/wy123/p/7102128.html (保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错误进行修正或补充,无他)   本文的数据库版本是MySQL5.7.18,简单介绍一下MySQL数据文件目录的物理结构和作用,从中可以窥见MySQL的整体上的物理文件结构以及逻辑功能.可以从整体结构上了解到MySQL的物理体系架构(本人学习的思路往

关于mysql插入中文字符的问题,急急急!!大家帮忙看一下

问题描述 关于mysql插入中文字符的问题,急急急!!大家帮忙看一下 我在my.ini中已经设置了默认编码是utf8,default-character-set=utf8, 这是数据表的结构 这是插入代码 求大神帮忙看看!! 解决方案 my.ini需要修改两处 default-character-set=utf8 character-set-server=utf8 而且修改后还需要重启mysql的服务 解决方案二: 急急急!!!哪位来帮忙啊!!!!!!

MySQL slow query [慢查询] 资料整理

链接:http://blog.itpub.net/28602568/viewspace-1650130/ 标题: MySQL slow query [慢查询] 资料整理 作者:lōττéry版权所有[文章允许转载,但必须以链接方式注明源地址,否则追究法律责任.] 前言: MySQL中提供了一个慢查询的日志记录功能,可以把查询SQL语句时间大于多少秒的语句写入慢查询日志,日常维护中可以通过慢查询日志的记录信息快速准确地判断问题所在.  (有点类似 oracle的v$session_longops 

java导入mysql出现中文乱码

问题描述 java导入mysql出现中文乱码 我写了一个小程序把txt中的文字读取并写入mysql,然而无论怎么样都有乱码,我试了很多方法都不行,结果最后解决居然是因为url的问题,崩溃了,求大神们看看 之前是这样 public static final String url = "jdbc:mysql://127.0.0.1/website?useUnicode=true&characterEncoding=UTF-8"; 改成这样竟然就没问题了... public stat

php插入到mysql数据库中文乱码,数据库中的中文可以正常显示

问题描述 php插入到mysql数据库中文乱码,数据库中的中文可以正常显示 php网页中文数据插入到mysql数据库乱码,数据库中的中文数据可以在网页上正常显示. php文件开头有header("Content-Type: text/html; charset=utf-8"); 使用PHP MySQL UPDATE之前有 mysql_query("set names 'utf8'",$conn); php文件以utf-8格式编码,phpmyadmin中数据库和数据表

编码-php插入到mysql数据库中文乱码,数据库中的中文可以正常显示

问题描述 php插入到mysql数据库中文乱码,数据库中的中文可以正常显示 PHP获取HTML的POST内容到数据库,插入以后显示乱码,我数据库编码已经设置成UTF8了,然后插入之前我ECHO出来也不是乱码,但是到数据库里面就成乱码了,不知道为什么呢,问之前我已经搜索过了,说要先执行 mysql_query("SET NAMES 'uft8'",$link); 这样,我这样执行以后然后刷新还是一样 解决方案 http://www.111cn.net/phper/31/59059.htm

mysql数据库中文乱码应该怎么解决,修改配置文件中的字符编码并没有作用

问题描述 mysql数据库中文乱码应该怎么解决,修改配置文件中的字符编码并没有作用 mysql数据库中文乱码应该怎么解决,修改配置文件中的字符编码并没有作用. 解决方案 把当前数据库字符集改为utf8试一下. 解决方案二: 可以设置当前文本编码,与数据库一致 解决方案三: 先把文本粘贴到记事本,然后改成utf-8 保存后再粘贴回去