sql求两个值范围筛选求薪资范围,两圆面积算法
sql
编程进阶笔记
发布日期
2023-02-20
更新日期
2023-04-30
阅读次数 197
文章字数 474
今天写了个sql一直都不太对,最终用数学推演了一下,才得到结果,很有意思。
已知期望薪资是一个范围。可能 1000-10000,也可能6000-7000,4000-9000等
页面筛选条件,也是两个值。比如 4000以下,4000-6000,6000-8000,8000-1万,1万以上则也有两个值。
当筛选4000以下,或者1万以上只需要判断最大值小于4000,或者最小值大于1万即可。
而输入 4000-8000 筛选条件时,则只要有任何一个值在这个范围内都需要显示出来。
直接取交集比较困难,此时可以把两个值看成两个圆,共有5种位置关系。
可以看到除了“外离”,都有交集。
用文字理解,就是:小于最小值,或者大于最大值,就是没有交集的。
则计算并取反,即可得到结果:
$b<min_salary || $a>max_salary =>
¬($b<min_salary || $a>max_salary) =>
¬($b<min)&&¬($a>max)=>
$b>=min && $a<=max
最终结果是:最小值<=输入的最大值 && 最大值>=输入的最小值
声明本文为转载,原文地址: https://www.huazstar.net/blog/post-421.html
sql
发表评论
相关推荐