я хранимая процедура, в которой есть if
заявление, где foto_id
является integer
и datums
имеет date
типа:MySQL оператор не работает должным образом
if((select count(*) from (select pv.Datums, pv.Fotografs from pieteikumi_view pv
where pv.Fotografs=foto_id and pv.Datums=datums)as tab) = 0) then
select 3;
else
select -2;
Когда я тестировал за пределами процедуры с теми же самыми значениями , так как при вызове процедуры, как это:
select count(*) from (select pv.Datums, pv.Fotografs from pieteikumi_view pv
where pv.Fotografs='9' and pv.Datums='2016-01-01')as tab;
я получить желаемый результат, однако внутри процедуры if
оператор возвращает true
, даже если этот оператор select
возвращает количество строк. Я был бы рад любым указателям на то, что я делаю неправильно ...
P.S. Является ли эта информация достаточной или мне нужно предоставить полную информацию о процедуре и таблице?
Используйте вместо этого SELECT EXISTS. –