between and 字段是字符串时是怎么比较大小的

between and 字段是字符串时是怎么比较大小的

如图所示

select * from mumushouji.user where password between '123' and 'abc'

sql语句将password是1234也匹配出来了,不知道网上哪些比较字符串大小的资料比较准确

https://img1.sycdn.imooc.com//climg/648c675209dae1ee09590285.jpg

正在回答

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

1回答

同学,你好!1、字符串比较大小是逐位从高位到低位逐个比较(按ascii码),如"18" 和“2”比较,先是1和2 比较。

https://img1.sycdn.imooc.com//climg/648fbd4c09aa898505160433.jpg

2的ascii值比1大(如橙色框),那么比较便结束了。

2、若是数字字符串位数不相同,则补值0到最大位数再进行比较。如同学的123是总共是3位数,1234 是4位数。比较时,三位的123 和和四位的123的ascii 值相同,三位的123第4位补值是0,四位的1234第4位是4,ascii值比0大,所以“1234”要大于“123”。between  and  是求大于between 的值,所以“1234”会出现在查询结果中

祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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