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
総括する:
クエリを実行する場合、クエリ結果の数は受信関数の数と同じである必要があります。