如何使用带有可选值的多个条件从mysql表中获取值

xu3bshqb  于 2021-06-21  发布在  Mysql
关注(0)|答案(3)|浏览(342)

我需要用多个条件从mysql表中检索所有数据,但这里有些输入是可选的。我在下面解释我的table。
db\U考试:

id   name   reg_no     zone    center    college    sub_code  

1    aaa      12         3       AB        scs          2

2    bbb      12         2       AB        BJB           2

3    ccc      13         3       AB        BJB          3

我正在传递下面的输入以获取所有数据。

reg_no=12
zone=3
center=AB
sub_code=2

从上面输入的一些可选值表示列的值 center and sub_code 可能有,也可能是空白。在这里,我需要使用上述条件和列的值来获取所有数据 center=AB or center='' 以及 sub_code=2 or sub_code='' . 但前两个条件是强制性的。

wfauudbj

wfauudbj1#

试试这个:

SELECT
        t1.id
       ,t1.name
       ,t1.reg_no
       ,t1.zone
       ,t1.college
       ,t2.center
       ,t3.sub_code
    FROM db_exam t1
    INNER JOIN db_exam t2
    ON t2.id=t1.id
    AND t2.center='AB'
    INNER JOIN db_exam t3
    ON t3.id=t1.id
    AND t3.sub_code=2;
whlutmcx

whlutmcx2#

用户在查询中的位置如下。像空字符串“”一样传递输入值和默认值。

SELECT * 
FROM db_exam
WHERE (reg_no = <number> AND zone= <number> AND center IN (<input>, '') AND sub_code IN (<input>, ''));

如果我错了,请纠正我。

oxiaedzo

oxiaedzo3#

使用下面的查询

select * from db_exam where reg_no=12 and zone=3 and (center=AB or center='') and (sub_code=2 or sub_code='')

相关问题