扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
Mysql关于bit类型的用法:
公司主营业务:成都网站设计、做网站、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联推出循化免费做网站回馈大家。
官方的资料如下:
9.1.5. 位字段值
可以使用b'value'符号写位字段值。value是一个用0和1写成的二进制值。
位字段符号可以方便指定分配给BIT列的值:
mysql CREATE TABLE t (b BIT(8));
mysql INSERT INTO t SET b = b'11111111';
mysql INSERT INTO t SET b = b'1010';
+------+----------+----------+----------+
| b+0 | BIN(b+0) | OCT(b+0) | HEX(b+0) |
+------+----------+----------+----------+
| 255 | 11111111 | 377 | FF || 10 | 1010 | 12 | A |
+------+----------+----------+----------+
Mysql:bit类型的查询与插入
Posted 10月 11, 2010 by logineran in MYSQL. Tagged: MYSQL.
mysql有种字段类型是bit。
1.如何插入呢?
它的插入必须采用:
可以使用b’value’符号写位字段值。value是一个用0和1写成的二进制值。
mysql create table an_bit (id bit(8));
Query OK, 0 rows affected (0.00 sec)
mysql insert into an_bit values (11);
Query OK, 1 row affected (0.00 sec)
虽然可以插入,但是实际插入的数值是11(十进制),不是3(十进制)。
mysql insert into an_bit values (b’11′);
Query OK, 1 row affected (0.00 sec)
这才是正确的插入方法。 插入的值是3(十进制)
2. 如何查询呢?
mysql select * from an_bit;
+——+
| id |
+——+
|
|
| |
+——+
2 rows in set (0.00 sec)
这样是不对的,看不到东西
mysql select id+0 from an_bit;
+——+
| id+0 |
+——+
| 11 |
| 3 |
+——+
2 rows in set (0.00 sec)
这是正确的,可以看到十进制的值。
mysql select bin(id+0) from an_bit;
+———–+
| bin(id+0) |
+———–+
| 1011 |
| 11 |
+———–+
2 rows in set (0.00 sec)
这是二进制的值
mysql select oct(id+0) from an_bit;
+———–+
| oct(id+0) |
+———–+
| 13 |
| 3 |
+———–+
2 rows in set (0.00 sec)
这是八进制的值
mysql select hex(id+0) from an_bit;
+———–+
| hex(id+0) |
+———–+
| B |
| 3 |
+———–+
2 rows in set (0.00 sec)
这是十六进制的值
个人觉得有两个办法两个办法
(1)最简单的,再套一层然后yy就能作为字段用了。
(2)你的最终结果就是yy=1的那个,没错吧,也就是在class表中根据class_id分组,然后count=1的那个,对吧。
那么个人觉得可以利用group by class_id having count(*)=1在student表中筛选(也就是子查询),先选出count=1的,然后再关联class_id,反正你要的也是这个结果。显示的时候直接写1就行,毕竟你查出来的就是1。这样的话,就算yy作为一个变量也没问题,只要更改count(*)=1后面的值,和语句中的1就可以了。
mysql中text 最大长度为65,535(2的16次方–1)字符的TEXT列。
如果觉得text长度不够,可以选择:
1、MEDIUMTEXT最大长度为16,777,215
2、LONGTEXT最大长度为4,294,967,295
使用方法:
mysql中的text对应oracle中的clob,又分为TINYTEXT, TEXT, MEDIUMTEXT,LONGTEXT, 都是表示数据长度类型的一种。
语法:[ UNSIGNED ] mediutext
TINYTEXT: 256 bytes
TEXT: 65,535 bytes = ~64kb
MEDIUMTEXT: 16,777,215 bytes = ~16MB
扩展资料:
text等字段需要慎重使用,多个text字段会报错,Row size too large 表示行的内容太多了。
修改方法:
1、首先查询下参数的值:
mysql SELECT @@global.max_sort_length;
2、然后去设置这个值:(数字根据需要自行填写)
mysql SET GLOBAL max_sort_length=2048;
当排序时只使用该列的前max_sort_length个字节。max_sort_length的 默认值是1024;该值可以在启动mysqld服务器时使用–max_sort_length选项进行更改。
text 和 char varchar blob这几种类型的区别:
char:定长,最大255个字符
varchar:变长,最大65535个字符(既是单列的限制,又是整行的限制)
text:变长,有字符集的大对象,并根据字符集进行排序和校验,大小写不敏感
blob:变长,无字符集的二进制大对象,大小写敏感
大概的形式是这样的:
下面还是以实例来说明,要不然不好理解,新建两张表,一张是商品表,另外一张是商品的评论表
商品表:
评论表:
然后插入一些数据:
下面我们用子查询的方式来查出商品的信息以及每个商品的评论数量
查询结果:
对于这种查询,可以分成两部来理解,首先忽略整个select子查询,查出商品表中的数据。
在结果字段中使用子查询的关键两点:
1.子查询只能返回一条数据,如果子查询返回多条数据则会出错。
2.每一条select子查询只能查询一个字段。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流