0

我有一个表 T1,其中包含列 ID(主键,varchar)、名称(varchar)、值(数字)和键(数字)。我有一个由 ID 组成的字符串数组,我想检索所有具有这些 ID 的记录在单个查询中的 TABLE T1 的字符串数组中。如何在 oracle 中编写此查询?

我目前正在使用 for 循环并获取记录:

for(String id: idList)
{
   //Query to get record one by one (Select * from t1 where ID='id')
}

您能否建议我一个查询以在单个查询中检索所有这些值?

4

3 回答 3

1

使用以下查询

select * from t1 where id in ('id1', 'id2', 'id3')

要将 ArrayList 转换为格式,请执行以下操作

StringBuilder sb = New StringBuilder();
for(String id: idList)
{
   sb.append("'"+id+"',")
}
sb.deleteCharAt(sb.length() -1);
sb.toString();
于 2013-06-20T05:16:03.883 回答
1
//Prep the query string
//---------------------------------

    $strQ ="";
    $len = count($idList);

    $strQ = "'".$idList[0]."'";

    for($i=1; $i<$len; $i++){
       $strQ += " or ID = '".$idList[$i]."'";
    }

//Now Da Query
//---------------------------------------

"Select * from t1 where ID= ".$strQ;

//---------------------

我已经在上面使用 PHP 解释了...

于 2013-06-20T05:24:40.853 回答
0

尝试这个

List<Long> itemIDs = new ArrayList<Long>();

itemIDs.add(10); .... .... AuthService.deletePracticeAppMenu(itemIDs, selectedPractice.getID());


public void deletePracticeAppMenu(List<Long> prAppMenuIDs, Long practiceID) {
    String query = "delete from PracticeAppMenu where PrAppMenuID  in (:appMenuIDs) and practiceID = :pracid ";
    Query q = getCurrentSession().createQuery(query);
    q.setParameterList("appMenuIDs", prAppMenuIDs);
    q.setParameter("pracid", practiceID);
    q.executeUpdate();
}
于 2013-06-21T02:34:20.313 回答