#mysql #triggers
#mysql #триггеры
Вопрос:
Я получаю очень странную проблему в триггере MySQL.
Значение Count не сохраняется в переменной. Ниже приведен мой код.
DECLARE user_cnt INTEGER;
DECLARE company_id INTEGER;
...
SELECT IF(COUNT(id) > 0, COUNT(id), -1) INTO @user_cnt
FROM user
WHERE user_type = 'admin' AND `status` = 'enabled' AND company_id = @company_id;
Тогда @company_id
как имеет допустимое целочисленное значение.
Здесь @user_cnt
всегда возвращается -1
как значение.
Что можно сделать? Я что-то упустил?
Комментарии:
1. Вы уверены, что получаете записи для ваших условий?
2. @juergend, если не указано условие company_id, чтобы оно возвращало счетчик возврата. Но при задании условия company_id это не так. Для изменения значения я также сохраняю значение
@company_id
в одной таблице, чтобы убедиться, что я получаю значение в@company_id
переменной, и это происходит.3. Проблема заключается в имени вашей переменной
company_id
, которое сопоставляется со столбцом вашей таблицы во время запроса, поэтому вы не получаете никакого значения при использовании фильтра company_id. измените свою переменную на что-то другое, напримерtemp_company_id
4. @AbhishekGinani, все еще не повезло. Я изменил его,
temp_company_id
но не получил count.5. Предоставьте некоторые примеры данных. также есть ли у вас какое-либо значение в @company_id?