我的表格中包含典型的无符号 int主键id
select * from log_data where id between -129 and -120
似乎试图返回表格中的每一行(或至少卡在'发送数据'几个小时)
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE log_data ALL PRIMARY NULL NULL NULL 357114 Using where
根据BETWEEN
https://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#operator_between处的文档:
如果所有参数属于同一类型
然而,
select * from log_data where -129 <= id and id <= -120
表现得像我期待的那样。
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
这是一个错误,还是可以解释这种行为?
答案 0 :(得分:-2)
SELECT * FROM log_data
WHERE id
&lt; = -129和id
&gt; = -120