在存储过程中运行查询时,我从 MySQL 收到此错误:
错误代码:1172 结果包含多于一行
我理解错误:我在做一个SELECT (...) INTO (var list),因此查询需要返回单行。当我使用LIMIT 1or 时SELECT DISTINCT,错误消失了。
但是:当我手动运行原始查询(没有LIMIT或DISTINCT)时,它确实返回了一行。所以我怀疑我可能遇到了 MySQL 错误。有谁知道会发生什么?
编辑
我正在按要求发布 SQL。以下划线开头的所有内容都是在过程中较早声明的变量。当我测试它时,我将替换_cd_pai_vc为导致问题的记录的 ID。
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 = …Run Code Online (Sandbox Code Playgroud)