如何减少此工作所需的SQL Querry数量?

问题描述 投票:0回答:2

所以..我知道一些编程知识,但是我的技能有限。今天,我正在尝试进行一个简单的查询,以让我在选择的日期之间在我当前工作的医院里工作的医疗保健人员。

我想有4个输入日期,例如this

它是西班牙语,所以这里是介绍:

日期输入是“过滤器”

Started working >= to this date
Started working <= to this date
Quit the job >= to this date
Quit the job <= to this date

而2选择输入是个人所拥有的标题和专业程度。 (我需要都可以为null的选项)

因此,我可以解决这种可能的情况,使SQL查询成为可能,如下所示:

    if ($titulo == '0' && $especialidad == '0' && $date1!=null && $date2==null && 
$bdesde==null && $bhasta==null){     

$sql_querry= "select * from personal where starting_date >= '$date1'" }

elseif ( ... and so on  

数据库是mysql。但是我想知道是否有一种方法可以用更少的代码来完成我想做的事情。谢谢。如果我不是很清楚。不是说英语的人。

所以..我知道一些编程知识,但是我的技能有限。今天,我正在尝试进行一个简单的查询,以让我在... ... >>

php html mysql sql where-clause
2个回答
1
投票

您可以使用案例表达式和条件逻辑:

select * 
from personal 
where 
    (:starting_date_after      is null or starting_date >= :starting_date_after)
    and (:starting_date_before is null or starting_date <= :starting_date_before)
    and (:ending_date_after    is null or ending_date   >= :ending_date_after)
    and (:ending_date_before   is null or ending_date   <= :ending_date_before)

0
投票

我认为准备好的陈述可以帮助您。

© www.soinside.com 2019 - 2024. All rights reserved.