Я получаю эту ошибку от MySQL при выполнении запроса внутри хранимой процедуры:
Код ошибки: 1172 Результат состоит из более чем одной строки
Iпонять ошибку: я делаю SELECT (...) INTO (var list)
, и, следовательно, запрос требуется вернуть одну строку.Когда я использую LIMIT 1
или SELECT DISTINCT
, ошибка исчезает.
Однако: когда я запускаю исходный запрос вручную (без LIMIT
или DISTINCT
), возвращает одинстрока .Так что я подозреваю, что столкнулся с ошибкой MySQL.Кто-нибудь знает, что может происходить?
РЕДАКТИРОВАТЬ
Я отправляю SQL в соответствии с просьбой.Все, что начинается с подчеркивания, является переменной, объявленной ранее внутри процедуры.Когда я проверяю его, я заменяю _cd_pai_vc
идентификатором записи, вызывающей проблему.
SELECT a.valor, IFNULL(p.valor, 0), fn_cd2alias(ra.cd_registro), fn_cd2alias(IFNULL(p.valor,0))
INTO _valor, _cd_pai_vc, _alias_verbete, _alias_pai
FROM dados_registros ra
INNER JOIN dados_varchar255 a
ON a.cd_registro = ra.cd_registro
AND a.fl_excluido = 0
AND a.alias = 'vc-verbetes-termo'
LEFT OUTER JOIN dados_registros rp
INNER JOIN dados_int p
ON p.cd_registro = rp.cd_registro
AND p.fl_excluido = 0
AND p.alias = 'vc-remissoes-termo referenciado'
INNER JOIN dados_int pt
ON pt.cd_registro = rp.cd_registro
AND pt.fl_excluido = 0
AND pt.alias = 'vc-remissoes-tipo remissao'
AND fn_cd2alias(pt.valor) = 'hierarquica'
ON ra.cd_registro = rp.cd_entidade
AND rp.fl_excluido = 0
AND fn_cd2alias(rp.cd_modulo) = 'vc-remissoes'
WHERE ra.cd_registro = _cd_pai_vc
AND ra.fl_excluido = 0;