MySQLエラー-1222-使用されているSELECTステートメントの列数が異なります



Mysql Error 1222 Used Select Statements Have Different Number Columns



MySQLストアドプロシージャの作成時に、次のようなエラーが報告されました。エラーの説明:

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

プロンプトクエリ列とターゲット列に一貫性がありません



私のSQLステートメントは次のようなものです

DROP PROCEDURE Pfood_price_count DELIMITER // CREATE PROCEDURE Pfood_price_count(IN price_info1 FLOAT,IN price_info2 FLOAT,OUT count INT) BEGIN SELECT COUNT(*), SUM(price) INTO count FROM food WHERE price BETWEEN price_info1 AND price_info2 END// DELIMITER CALL Pfood_price_count(2, 18, @cnt) select @cnt

調査の結果、2列のデータが照会されたことがわかりましたが、受信する変数カウントのみを指定したため、このエラーが発生しました。変数を2回の実行に変更します。



完成したSQLステートメントは次のようになります。

DELIMITER // CREATE PROCEDURE Pfood_price_count(IN price_info1 FLOAT,IN price_info2 FLOAT,OUT count INT) BEGIN SELECT COUNT(*), SUM(price) INTO count,@sm FROM food WHERE price BETWEEN price_info1 AND price_info2 END// DELIMITER CALL Pfood_price_count(2, 18, @cnt) select @cnt

総括する:

クエリを実行する場合、クエリ結果の数は受信関数の数と同じである必要があります。