簡體   English   中英

Mysql存儲過程中的不同結果

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM