当前位置:首页>开发>正文

mysql获取字符串长度函数有哪些? mysql 如何查询某表 第一个字段内容长度

2023-04-21 18:38:45 互联网 未知 开发

 mysql获取字符串长度函数有哪些? mysql 如何查询某表 第一个字段内容长度

mysql获取字符串长度函数有哪些?

mysql字符串长度函数CHAR_LENGTH(str) 返回值为字符串str 的长度,长度的单位为字符。一个多字节字符算作一个单字符。对于一个包含五个二字节字符集, LENGTH()返回值为 10,而CHAR_LENGTH()的返回值为5。
mysql字符串长度函数CHARACTER_LENGTH(str) CHARACTER_LENGTH()是CHAR_LENGTH()的同义词。
mysql字符串长度函数BIT_LENGTH(str) 返回2进制长度.[喝小酒的网摘]http://blog.hehehehehe.cn/a/17596.htm

返回表中最长的字符串长度:

SELECT max( length( title ) ) FROM verycd_copy

SELECT * FROM admin WHERE LENGTH(username) < 6

mysql 如何查询某表 第一个字段内容长度

不对。因为没有排序的情况下,limit 1,并不能保证取的是第一条记录。
步骤如下:
1、创建测试表;
create table test_aaa(id int, bbb int , ccc int)

2、插入测试数据;
insert into test_aaa values(1, 111, 222)
insert into test_aaa values(3, 333, 444)
insert into test_aaa values(2, 555, 666)

3、查询表中数据;可以看下id并没有排序;
select * from test_aaa

4、重新排序后,再取第一条记录;并去bbb字段的长度;
select id, length(bbb) lb
 from (select * from test_aaa order by id) t 
limit 1

如何用SQL字符长度查询?

用SQL字符长度查询的具体步骤如下:
我们需要准备的材料分别是:电脑、sql查询器。
1、首先,打开sql查询器,连接上相应的数据库表,如store表。

2、点击“查询”按钮,再输入:select * from store where length(`name`) < 8 and length(address) < 8。


3、点击“运行”按钮,即可查询到想到的结果。

如何得到Mysql blob字段的长度

mysql版本 5. 表类型: innodb, row_format=compact (这是默认的行格式)

插入超过10个blob, blob的数据量很小(<768字节), 插入成功。
插入超过10个blob, blob的数据量很大(>768字节), 插入失败:报 Got error 139 from storage engine。

注意,如果mysql服务器版本是5.1, innodb_file_format选项不存在, 也就无从谈起Barracuda格式。 设置row_format=dynamic也是没意义的。

mysql版本 5. 表类型: innodb, row_format=compact (这是默认的行格式)
插入超过10个blob, blob的数据量很大(>768字节), 插入失败:报 Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.

表类型: innodb, row_format=dynamic (这是innodb的新文件存储格式Barracuda所支持的行格式)
插入超过10个blob, blob的数据量很大(>768字节), 插入成功

备注:
1) 实际测试测试我用的每个字段长度都是100K
2) 对于mysql5.5, 虽然支持Barracuda。但是默认使用的还是老的格式:Antelope
除非在mysql的配置里面my.cnf修改:
innodb_file_per_table = 1
innodb_file_format = Barracuda
或者set global 命令动态的修改:
SET GLOBAL innodb_file_format=barracuda
SET GLOBAL innodb_file_per_table=1

注意:
1) 修改后的innodb_file_format格式, 只影响后续创建的表。 也就是后续创建的表,可以支持把row_format设为dynamic
2) SET GLOBAL 只是在mysql服务器运行期间有效,重启后innodb_file_format还原为原来的格式。
3) 判断一个表是否支持超过10个blob的字段的简单办法:
show table status like t1 G
查看 Row_format , 如果是Compact, 必定不支持, 如果是dynamic, 则支持。

最新文章

随便看看