[英]Different Result in Mysql Stored Procedure
我有一個名為getvotes(postitem varchar(50),userid varchar(50))
的存儲過程getvotes(postitem varchar(50),userid varchar(50))
該過程獲取用戶為特定項目提供的投票數。 該過程中的DML語句是
select count(*) from tblvotes where `postitem`=postitem and `userid`=userid;
它給我30的結果。但是當我運行sql(使用相同參數值的存儲過程之外)時,使用
select count(*) from tblvotes where `postitem`=md5(1) and `userid`=md5(1);
結果是10。
我的查詢出了什么問題?
謝謝!
不要使用與列名同名的參數名。
我通常在每個參數前加上p_
前綴,在每個變量前加上v_
前綴,以避免出現此類錯誤。
如果哈希比較可能失敗,請檢查用於MD5和用戶十六進制的加密長度
select count(*) from tblvotes where
postitem = HEX(MD5(1) and
userid = HEX(MD5(1));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.