MySQLのストアドプロシージャ、where句の問題
-
23-08-2019 - |
質問
私はこのようになりますMySQLのストアドプロシージャを持っている -
delimiter |
create procedure GetEmployeeById(in ID varchar(45))
begin
select id,
firstName,
lastName,
phone,
address1,
address2,
city,
state,
zip,
username,
password,
emptypeid
from myschema.tblemployees t
where
t.id=ID limit 1;
end |
delimiter;
私は場所に制限1を持っていない場合は、、それは常に、テーブルのすべての行を返します - IDパラメータに設定され、各レコードのID値を持ちます。なぜ私はどこのid = IDを使用することはできません、と私が行うときに、なぜそれがすべてのレコードを返すのですか?リミット1を使用して、私の意味は何ですか?なぜ私は土曜日の夜にプログラミングするのですか?
解決
ので、常にtrueになりますこれは、自分自身でt.id比較しています。あなたの仮パラメータ何か他のものを呼び出します。
他のヒント
MySQLでの列名は大文字と小文字を区別しません。クエリの毛皮でid
列のID
という名前のパラメータので、あなたのwhere
句は、実際には同じ列を参照するために、2つの異なる表現を使っています。そしてもちろん、列の値は常に自分自身に等しいので、すべてのレコードが一致します。入力パラメータに別の名前を使用します。
所属していません StackOverflow