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 でそれを行う方法はありますか?