質問

私はこのようになります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での列名は大文字と小文字を区別しません。クエリの毛皮でidIDという名前のパラメータので、あなたのwhere句は、実際には同じ列を参照するために、2つの異なる表現を使っています。そしてもちろん、列の値は常に自分自身に等しいので、すべてのレコードが一致します。入力パラメータに別の名前を使用します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top