MySQL报错 - 1222 - The used SELECT statements have a different number of columns

素颜马尾好姑娘i 2022-04-10 01:24 426阅读 0赞

在创建 MySQL 存储过程报了一个这样的错,错误描述:

  1. 1222 - The used SELECT statements have a different number of columns

提示查询的列和目标列不一致

我的 SQL 语句是这样

  1. DROP PROCEDURE Pfood_price_count;
  2. DELIMITER //
  3. CREATE PROCEDURE Pfood_price_count(IN price_info1 FLOAT,IN price_info2 FLOAT,OUT count INT)
  4. BEGIN
  5. SELECT COUNT(*), SUM(price) INTO count FROM food WHERE price BETWEEN price_info1 AND price_info2;
  6. END;//
  7. DELIMITER ;
  8. CALL Pfood_price_count(2, 18, @cnt);
  9. select @cnt;

经过探索发现,是查询出了两列数据,但是我只给了一个变量 count 接收,所以出现这个报错。将变量改为两个执行成功。

完成的 sql 语句长这样:

  1. DELIMITER //
  2. CREATE PROCEDURE Pfood_price_count(IN price_info1 FLOAT,IN price_info2 FLOAT,OUT count INT)
  3. BEGIN
  4. SELECT COUNT(*), SUM(price) INTO count,@sm FROM food WHERE price BETWEEN price_info1 AND price_info2;
  5. END;//
  6. DELIMITER ;
  7. CALL Pfood_price_count(2, 18, @cnt);
  8. select @cnt;

总结:

查询时,查询结果的个数要与接收函数的个数相同。

发表评论

表情:
评论列表 (有 0 条评论,426人围观)

还没有评论,来说两句吧...

相关阅读