我试图创建一个存储过程,它将通过匹配名字和姓氏来搜索users
表,但是只有当我只搜索姓氏时才能使用它。谁能明白为什么
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `SearchUserByName`(
IN in_first_name VARCHAR(100),
IN in_last_name VARCHAR(100)
)
BEGIN
SELECT *
FROM `users`
WHERE in_first_name AND in_last_name = first_name AND last_name;
END
答案 0 :(得分:1)
这是一个非常奇怪的where子句......
将其更改为:
WHERE ((in_first_name = '') or (first_name = in_first_name))
AND ((in_last_name = '') or (last_name = in_last_name))
如果为第一个或最后一个名称传递空白,则忽略该部分的该部分。这允许您通过第一个或最后一个或两个搜索。
答案 1 :(得分:0)
要查找last_name列与提供的参数值匹配的行,并且first_name列与供应商参数值匹配...
将WHERE子句更改为以下内容:
FROM `users`
WHERE first_name = in_first_name
AND last_name = in_last_name