当我执行下面的MySql存储过程时,第一个选择的结果数是正确的,但它似乎忽略了第二个选择的参数,因为它返回所有记录。对于第一个选择,它返回1个联系人,但对于第二个选择,它将返回所有联系人的所有地址。
CREATE DEFINER = 'dbadmin'@'%'
PROCEDURE ContactsDB.GetContact(IN contactId INT)
BEGIN
SELECT Id,
FirstName,
LastName,
Company,
Title,
Email
FROM Contacts
WHERE Id = contactId;
SELECT Id,
ContactId,
AddressType,
StreetAddress,
City,
StateId,
PostalCode
FROM Addresses
WHERE ContactId = contactId;
END
答案 0 :(得分:1)
你没有说你正在使用的是什么版本的MySQL,但如果它是5或更高版本,它可能是区分大小写的事情。您的参数名称与列名称匹配,第二个查询可能只是将列与自身进行比较并返回所有行。