Оператор
SELECT * FROM tableA WHERE x = ?
и параметр вставляется через java.sql.PreparedStatement 'stmt'
stmt.setString(1, y); // y may be null
If y
имеет значение NULL, оператор не возвращает строк в каждом случае, потому что x = null
всегда ложно (должно быть x IS NULL
).
Одно из решений было бы
SELECT * FROM tableA WHERE x = ? OR (x IS NULL AND ? IS NULL)
Но тогда мне нужно установить один и тот же параметр дважды. Есть ли лучшее решение?
Спасибо!