2

SQL に新しい条件を追加したいと考えています。たとえば、If query is;

SELECT EMP_ID, FIRST_NAME FROM EMPLOYEES;

このコードで新しい原因を追加できます。

@Override
protected void setLimit(final PlainSelect ps,final long rowLimit) {
    Expression where = ps.getWhere();
    if(where == null) {
         try {
            where = CCJSqlParserUtil.parseCondExpression("ROWNUM < " + (rowLimit+1) );
        } catch (JSQLParserException e) {
            e.printStackTrace();
        }
    }
    ps.setWhere(where);
}

このコードはクエリを次のように変更します

SELECT EMP_ID, FIRST_NAME FROM EMPLOYEES WHERE ROWNUM < 10;

...

しかし問題は、クエリが次のような場合です。

 SELECT EMP_ID, FIRST_NAME FROM EMPLOYEES WHERE EMP_ID = 10 AND EMP_ID = 10 AND FIRST_NAME = 'Steven'; 

現在の条件に新しい条件を追加することはできません。このクエリを like に変更する方法はありますか?

 SELECT EMP_ID, FIRST_NAME FROM EMPLOYEES WHERE EMP_ID = 10 AND EMP_ID = 10 AND FIRST_NAME = 'Steven' AND ROWNUM < 10; 

JSqlParser でそれを行う方法はありますか?

4

1 に答える 1