Поисковый запрос с необязательным полем mysql - PullRequest
0 голосов
/ 07 февраля 2019

Я пишу поисковый запрос для таблицы базы данных, я знаю, где проблема, но я не знаю, как ее решить.В моей форме у меня есть три поля, которые я могу использовать.Пользователь может выбрать использование только одного из них, оставляя другие пробелы.

CREATE DEFINER=`root`@`localhost` PROCEDURE `search_del`(

IN v_data_inizio date,
IN v_data_fine date,
IN v_tipo varchar(125),
IN v_autorizzazione varchar(25)

)
BEGIN

SELECT
tab18_delibere.numero,
tab18_delibere.anno,
DATE_FORMAT(data, '%d/%m/%Y') as data,
tab18_delibere.descrizione,
tab18_delibere.tipo,
tab18_delibere.nome,
tab19_assdel.autorizzazione

FROM tab18_delibere 
join
tab19_assdel 
on tab18_delibere.anno = tab19_assdel.anno and  tab18_delibere.numero = tab19_assdel.numero
WHERE (v_autorizzazione IS NULL OR tab19_assdel.autorizzazione = v_autorizzazione) and 
(v_data_inizio IS NULL OR  tab18_delibere.data > v_data_inizio) and 
(v_data_fine IS NULL OR  tab18_delibere.data < v_data_fine)  and 
(v_tipo IS NULL OR tab18_delibere.tipo LIKE CONCAT('%', v_tipo, '%'));

END

Это хранимая процедура, я знаю, что проблема в этой строке:

(v_autorizzazione IS NULL OR tab19_assdel.autorizzazione = v_autorizzazione)

Потому что без этого все работает нормально, но, к сожалению, мне также нужно это поле для моего исследования,Если я выберу значение для него, ничего плохого не произойдет, и я получу результаты, которые я хочу, но если я оставлю это поле пустым, я не получу результаты поиска.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...