给定一个包含以下列和数据的表:
comment, minAge, maxAge
"a" 1 5
"b" 13 25
"c" 20 50
"d" 22
是否可以执行如下的SQL查询:
select * from rows where 16 to 22
在minAge和maxAge之间。结果如下:
"b", 13, 19
"c" ,20, 50
"d" ,22
答案 0 :(得分:2)
您可以这样做:
SELECT * FROM `table` WHERE `minAge` >= 16 AND `maxAge` <= 22
这将得到minAge列大于或等于16且maxAge列小于或等于22的每一行。
更新
如果您还想返回minAge和/或maxAge为null的行,请使用此。
SELECT * FROM `table` WHERE (`minAge` >= 16 || `minAge` IS NULL) AND (`maxAge` <= 22 || `maxAge` IS NULL)
因此,此查询现在应该满足注释值为&#34; d&#34;的行。感谢Tom Lord提出的建议。
答案 1 :(得分:0)