mysql数据库比较字符串数值

记录

问题 : 比较大小时候出现错误
原因: 按位比较

select * from device_log where del = '0' and sn_start <= '9999988888777771' and sn_end >= '9999988888777771' ## sn_start=sn_end = '9999988888'

select '9999988888' <= '9999988888777771' 比较一 -- 比较结果1

select '9999988889' >= '9999988888777771' 比较二 -- 比较结果2

select CHAR_LENGTH('9999988888777771') -- 16

select lpad('9999988888', CHAR_LENGTH('9999988888777771'), 0) --0000009999988888

select * from device_log where del = '0' and lpad(sn_start, CHAR_LENGTH('1999988888777761'), 0) <= '1999988888777761' and lpad(sn_end, CHAR_LENGTH('1999988888777761'), 0) >= '1999988888777761' -- 解决方法: 前置填充0

你可能感兴趣的:(记录)