1

jdbc には postgres 9.1 と Java コードを使用しています。

I may use a order byclause in mysql query string

meta dataクエリの情報を取得して、クエリにorder by句があるかどうかを確認したいだけです。ある場合、 で指定されたフィールドの数order by clause

Ex: order by age order by age, name order by age asc, name desc

これらの例では、order by 句で指定されたパラメーターの数とその列名を取得したいだけです。

4

2 に答える 2

0

クエリを文字列として取得している場合は、単純に解析できます。

つまり、ORDERBYが存在することを理解するため

"SELECT * FROM MyTable ORDER BY SomeColumn".toLowerCase().indexOf("order by") // if it's return -1 query does not contains order by section otherwise it returns start index for first occurence "ORDER BY" in given string

文字列でのより複雑な検索には、RegExpを使用する必要がある場合があります

于 2012-12-17T15:00:14.180 に答える
0

これは、SQL クエリを部分に分割してから再割り当てすることで実行できます。お気に入り

String sql="SELECT NAME,COMPANY,FNAME,AGE FROM COMP_DATA JOIN PERSONAL_DATA WHERE (1=1) AND FNAME='Vaibs' ORDER BY AGE";

JAVAで書くときは以下のようにします。クエリ全体を文字列部分に分割し、このように再結合します。

String strSQL = "SELECT " + "NAME"+",COMPANY"+",FNAME"+",AGE" + "FROM "
        + getTableName1();  //getTableName1() return tablename

strSQL+="JOIN "+ getTable2()+"";//getTable2() return tablename as well

String strWhere = " WHERE (1=1) " + " and FNAME='" + fname+ "';


String orderBySQL = " Order by " + i_will_return_string_to_order_by();

 //return  AGE in our case

String FinalString= strSQL +strWhere +orderBySQL ;

欲しいものを手に入れるためのSOP注文。それが役に立ったことを願っています。

于 2012-12-17T13:57:44.663 に答える