2011-12-05 4 views
4

CFScriptを使用してget in valueリストを行う方法を教えてください。私は1つのIDを渡す場合は下に動作しますが、複数のIDを渡すにはどうしますか?ColdFusion 9複数のIDを持つCFScriptクエリ

// Get Modules By IDs 
function getModulesByIDs(string dsn,required numeric pIDS) { 
    // Setup a variable for the Query Result 
    var qResult = ''; 
    // Setup the Query variable 
    var q= new query(); 
    // Add Parameter 
    q.addParam(name="ID", value=arguments.pIDS, cfsqltype="CF_SQL_INTEGER"); 
    // Create the SQL String 
    var sqlString=" 
      SELECT ROLEID, 
         ROLENAME, 
         NAME, 
         MODULENAME 
      FROM  MODULEROLE 
      WHERE  
         MODULEIDS IN :ID 
     "; 
    q.setdatasource(arguments.pDsn); 
    q.setsql(sqlString); 
    qResult=q.execute().getresult(); 
    return qResult; 
} 

答えて

7

valueが複数のIDを含んで示し、適切なIN(...)句を構築するために、括弧を追加するlist属性を使用します。

q.addParam(name="ID", value=arguments.pIDS, cfsqltype="CF_SQL_INTEGER", list="true"); 
... 
var sqlString="... WHERE MODULEIDS IN (:ID)"; 
+0

Paramをsort文に使用する場合、このようなものがありますか? –

+0

いいえ。バインドパラメータは、値がsqlとして評価されないようにします。したがって、 'ORDER BY'節のcolumnNameのように、オブジェクト名の代わりに使用することはできません。 – Leigh

関連する問題