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