【问题标题】:How to find record which falls inbetween two fields in mysql?如何找到位于mysql中两个字段之间的记录?
【发布时间】:2016-04-11 10:14:22
【问题描述】:

我在这样的表作业帖中有两个字段:-

jp_id jp_min jp_max
1    0      1
2    1     2
3    3     4
4    4     8
5    2     3
6    0      1
我想知道的是,如果我找一份有 5-9 或 1-5 经验的工作,我应该获得第 4 条记录。但是,如果我搜索 1-3 exp,那么我不应该获得第 4 条记录。
我曾这样尝试过:-
a)SELECT * FROM jobpost WHERE jp_min >=1 AND jp_max =1 AND jp_max 但它并没有给我想要的结果。有人可以给我提示左右。 
在这里,我们在两列之间搜索两个值。我发现很多答案在两列之间搜索单个值,因为在两个字段中使用 between 语句很容易。

【问题讨论】:

  • 我尝试了可能的重复答案,如下所示:SELECT * FROM jobpost WHERE jp_min >=1 和 jp_max
  • 您是否尝试过添加分组? GROUP BY jp_id
  • 这个职位是不同的。那么 group by endol' 是怎么回事,请你给我一个清晰的说明。
  • 只是出于好奇 - jp_min 和 jp_max 的列类型是什么? int、smallint 等...

标签: mysql max min


【解决方案1】:

当搜索a-b 的经验范围时,以下查询应该可以解决问题:-

SELECT * FROM jobpost WHERE 
(a>=jp_min AND a <= jp_max) OR (b>=jp_min AND b<=jp_max) ;

【讨论】:

  • 不,它不起作用。如果我搜索经验为 0-5 的工作,我没有得到具有 exp 3-4 的工作岗位,查询如下:SELECT * FROM jobpost WHERE (0>=jp_min AND 0 = jp_min AND 5
【解决方案2】:

这是你想要的吗?:-

SELECT * FROM jobpost WHERE (jp_min BETWEEN '1' AND '5') OR (jp_max BETWEEN '1' AND '5') OR (jp_min &lt; '1' AND jp_max &gt; '5');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-15
    • 1970-01-01
    • 1970-01-01
    • 2018-06-10
    • 1970-01-01
    相关资源
    最近更新 更多