Итак, у меня есть таблица.
sqlite> .schema
CREATE TABLE data(date int primary key, temp text, humi text, co2 text, coarse int);
У него есть некоторые данные, и использование условия WHERE для столбца TEXT делает то, что я ожидал:
sqlite> SELECT * FROM data WHERE temp > 26;
date temp humi co2 coarse
---------- ---------- ---------- ---------- ----------
1569962962 26.01 30.97 530.34 1
1569963029 26.05 30.91 528.57 0
1569963097 26.05 30.87 530.16 0
1569963164 26.09 30.83 530.37 1
1569963232 26.09 30.84 530.75 0
1569963300 26.13 30.77 532.51 0
Это также делает то, что я ожидаю, когда задаю условие, что ни одна из строк не совпадает:
sqlite> select * from data where temp > 99;
sqlite>
Если я не использую 100 или 1000 и т. Д. Затем игнорируется WHERE идает мне каждую строку:
sqlite> select * from data where temp > 100;
date temp humi co2 coarse
---------- ---------- ---------- ---------- ----------
1569967795 25.99 31.65 558.03 1
1569967863 26.01 31.60 558.78 0
1569967930 26.02 31.64 557.77 0
1569967998 26.01 31.65 556.68 1
1569968067 26.02 31.63 557.31 0
1569968134 26.04 31.64 560.01 0
1569968201 26.08 31.66 559.84 1
1569968268 26.05 31.66 563.95 0
1569968335 26.08 31.70 562.86 0
1569968403 26.09 31.69 563.85 1
1569968471 26.09 31.73 565.58 0
1569968539 26.11 31.69 566.04 0
1569968607 26.13 31.69 564.95 1
1569968674 26.13 31.62 565.51 0
1569968742 26.16 31.63 567.40 0
1569968810 26.16 31.60 568.38 1
[snip]
Я, конечно, обнаружил это, выполнив операцию DELETE с предложением WHERE, чтобы удалить некоторые неверные данные. Все нормально, я больше не плачу. (Исторические данные датчика были не важны) Но почему поведение на кратных 10? Я предполагаю, что он делает что-то слишком умное с гибкой печатью, но я не вижу, где.