为什么最后选择题的最后一个选项执行出来是这样的?60和95改为了85和95
Topic source这句话在mysql中执行会返回全部学生信息,这句的判断语法是错的,但是mysql不会对其进行错误检查,而是按照布尔值连续比较的形式进行计算,WHERE 85 <= score <= 95就等价于WHERE (85 <= score) <= 95,其中(65<=score)会返回一个布尔值列表[1 1 1 1 1 0 1 1 1 1],依次表示了每个学生成绩是否>=85,大于是1(True) 小于是0(False),这个布尔值再与常数90比较,此时这个布尔值列表会被视作整数列表,0和1都满足<=95的条件,因此返回所有数据。原题中的WHERE 60 <= score <= 90同理。
- 1
毛线qwe
id class_id name gender score
1 1 小明 M 90
2 1小红F95
3 1小军M88
4 1小米F73
5 2小白F81
62小兵M55
72小林M85
83小新F91
93小王M89
103小丽F88