1
正しく戻らないための手順は以下の通りです:プロシージャが私のクエリと異なる値を返すのはなぜですか?
私は、これは単一を返しselect * from hackstart.users where `ID` = 2;
と同じように返すことを期待し、私は
call GetUser_id(2);
を使用して呼び出す
CREATE DEFINER=`hs`@`%` PROCEDURE `GetUser_id`(in id int)
BEGIN
select * from hackstart.users where ID=id;
END
行。ただし、プロシージャは表全体を戻します。誰が私が間違っていたか、なぜそれが間違っているのかを指摘できますか?
に問題である列名と同じ名前を有し、プレフィクスを使用してカラムからパラメータを識別することが容易であり得るということであった、と述べたように?すなわち 'in p_id int'と:' select * from hackstart.users where ID = p_id; '? –
変数入力(ID)と列名 'ID'は同じ名前です。それらの1つを変更するか、最初のIDをバッククォートに入れて、データベースからの列であることを示します。あなたの現在はどこに2 = 2なのかを基本的に言っています。 – xQbert
助けてくれてありがとう、mysqlが大文字と小文字を区別していないことに気付かなかった。 – artman41