如何在MySQL中编写select Query?

时间:2013-05-30 14:47:07

标签: mysql select wso2dss

我想编写一个select查询,其中用户必须传递两个输入ID和SourceID。 但这是扭曲,输入ID是mandetory,SourceID是可选的。 我想写一个选择查询,如果用户只传递输入ID,那么我的选择查询将根据ID过滤数据,但如果用户同时传递ID和SourceID,则用户应根据两个过滤器获取数据。 我几乎是数据库查询的新手,所以我无法弄清楚如何做到这一点?

我的要求机构:

<body>
 <p:GetEntryByID xmlns:p="http://abcFarm.org/">
  <!--Exactly 1 occurrence-->
  <xs:ExistingID xmlns:xs="http://abcFarm.org/">?</xs:ExistingID>
  <!--0 to 1 occurrence-->
  <xs:TargetSourceID xmlns:xs="http://abcFarm.org/">?</xs:TargetSourceID>
 </p:GetEntryByID >
</body>

我编写的sql查询无法正常工作:

select * from entry WHERE ID='ID1' AND (e.SourceID='SourceID1' Or ID='ID1');

但这并不能满足我的上述需要。 请帮助。谢谢。

2 个答案:

答案 0 :(得分:4)

试试这个,

SELECT * 
FROM   entry 
WHERE  ID = 'ID1' AND 
       SourceID = COALESCE('SourceID1', SourceID)

这意味着当NULL中传递SourceID1时,与列SourceID进行比较的值就是列本身的值。

答案 1 :(得分:0)

$id = "Your_ID1";
$SourceID1 = "Your_SourceID1";

if($id){
    $query = "select * from entry WHERE ID=$id";

    if($SourceID1){
        $query .= " AND SourceID = $SourceID1";
    }
    $query .= ";";
}