关于数据表插入数据的问题

关于数据表插入数据的问题

CREATE TABLE test_set(
    a SET('a','b','C','d','e','f')
    
);
INSERT test_set(a) VALUES(1);
INSERT test_set(a) VALUES(2);
INSERT test_set(a) VALUES(3);
INSERT test_set(a) VALUES(4);
INSERT test_set(a) VALUES(5);
INSERT test_set(a) VALUES(6);

执行上面的sql语句结果得到以下值,例如INSERT test_set(a) VALUES(3);结果是插入的 a,b 不是应该插入C么?

http://img1.sycdn.imooc.com//climg/5da00acf0935c6e202800110.jpg

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
芝芝兰兰 2019-10-11 16:24:27

同学你好。

set的每个选项值对应一个数字,依次是1,2,4,8,16...,因为set一共有2个字节也就是最多有64个选项。使用的时候,可以使用set选项的字符串本身(多个选项用逗号分隔),也可以使用多个选项的数字之和(比如:1+2=3)

所以使用3插入的是第一个和第二个值,想要插入C应该使用数字4

如果解答了同学的疑问,望采纳~

祝学习愉快~

  • 提问者 小慧的骑士 #1
    后面的数字都可以由前面的数字组成,那么这种数字应该怎么区别?
    2019-10-11 16:52:35
  • 芝芝兰兰 回复 提问者 小慧的骑士 #2
    同学你好。set的值对应的数字实际上是用二进制数表示的,且每个数值都是2的整数倍。比如0001代表1,0010代表2,0011代表3,而0001+0010正好是0011,所以指定了3,就可以知道是1和2的和了。如果解答了同学的疑问,望采纳~祝学习愉快~
    2019-10-11 17:29:29
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师