Я работаю над проектом с функцией поиска и пытаюсь выполнить определенный поиск с помощью одного запроса MySQL.
У меня проблема в том, что некоторые параметры запроса не являются обязательными, поэтому они могут быть нулевыми.
Есть ли способ сделать запрос MySQL, который "игнорирует" свои собственные части, если какой-либо параметр имеет значение null? Я хотел бы избежать написания процедур в БД.
Мы используем Spring Boot с JPA.
Я не могу найти какие-либо решения в Интернете, если в любом случае это дублирует ссылку на этот вопрос.
В этом простом примере я хотел бы знать, возможно ли сделать запрос таким образом, чтобы сравнение между ownerName (? 2) и вложенным выбором могло возвращать TRUE, если ownerName равно NULL.
@Query(
value= "SELECT * FROM car WHERE car.name = ?1
AND ?2 = (SELECT person.name FROM person WHERE person.id = car.owner_id)",
nativeQuery = true)
List<Car> findCarsByNameAndOwnerName(String carName, String ownerName);