首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从列中选择具有不同值的所有行“选择全部或两者”

如何从列中选择具有不同值的所有行“选择全部或两者”
EN

Stack Overflow用户
提问于 2015-04-19 09:16:10
回答 5查看 32关注 0票数 1

在我的表中有一个名为grad_under的列

代码语言:javascript
复制
graduate=0
undergraduate=1

现在,我只能选择研究生或本科生,如果用户选择两个(全部),我如何可以将两个值放在一个变量中,这样我就可以同时获取研究生和本科生?

代码语言:javascript
复制
<select name="gradunder" id="gradunder">

        <option value="1">Graduate</option>
        <option value="0">Undergraduate</option>
        <option value="" selected="selected">Both</option>
      </select>

这是我用来获取行的MySQL查询。任何帮助都将不胜感激。

代码语言:javascript
复制
$result2 ="SELECT * FROM  curriculumcourses  
    NATURAL JOIN courses  
    WHERE  semester_ava='$avalablesemster' 
    AND curriculum_id IN (
        SELECT curriculum_id 
        FROM curriculum 
        WHERE '".$coursneededdate."' BETWEEN startdate AND enddate and grad_under='".$gradunder."')";
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-04-19 09:22:21

如果所选选项为空(均为空),则跳过最后一个AND部件

代码语言:javascript
复制
$result2 ="SELECT 
  * 
FROM
  curriculumcourses NATURAL 
  JOIN courses 
WHERE semester_ava = '$avalablesemster' 
  AND curriculum_id IN 
  (SELECT 
    curriculum_id 
  FROM
    curriculum 
  WHERE '".$coursneededdate."'
   BETWEEN startdate  AND enddate ";
if(!empty($gradunder)){
 $result2 .=" AND grad_under = '".$gradunder."'";
}
 $result2 .=")";

另外,使用JOIN而不是子查询更好。

票数 1
EN

Stack Overflow用户

发布于 2015-04-19 09:31:16

代码语言:javascript
复制
<?php
$str='';
if($gradunder==''){
    $str=" ('1','0') ";
}
else{
    $str=" ('".$gradunder."') ";
}
$result2 ="SELECT * FROM  curriculumcourses  "
."NATURAL JOIN courses  "
."WHERE  semester_ava='$avalablesemster' " 
."AND curriculum_id IN ( "
."  SELECT curriculum_id "
."  FROM curriculum "
."  WHERE '".$coursneededdate."' BETWEEN startdate AND enddate and grad_under IN '".$str."')";
?>
票数 1
EN

Stack Overflow用户

发布于 2015-04-19 09:23:09

如果只有两个值(grad或not),那么为什么不只是将“和grad_under =.”连接起来呢?如果查询字符串的值不是“两者”?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29727959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档