相关疑难解决方法(0)

MySQL 错误 1172 - 结果包含多于一行

在存储过程中运行查询时,我从 MySQL 收到此错误:

错误代码:1172 结果包含多于一行

我理解错误:我在做一个SELECT (...) INTO (var list),因此查询需要返回单行。当我使用LIMIT 1or 时SELECT DISTINCT,错误消失了。

但是:当我手动运行原始查询(没有LIMITDISTINCT)时,它确实返回了一行。所以我怀疑我可能遇到了 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)

mysql stored-procedures

9
推荐指数
2
解决办法
3万
查看次数

标签 统计

mysql ×1

stored-procedures ×1