I have a stored procedure that checks if a user exists already, regardless of the input used for the email it comes back with the first line in the database. If I run the se
The problem is that your variable has the name email, the same as the column. So, email = email is basically a no-op, because it refers only to the column name.
It is a good idea to prefix parameters with something to avoid this confusion:
CREATE DEFINER=`myusername`@`localhost` PROCEDURE `User_Auth`(IN v_Email VARCHAR(30))
BEGIN
DECLARE v_User_ID INT(30);
SELECT `User ID` INTO User_ID FROM `Users` u WHERE u.Email = v_Email LIMIT 1;
IF (User_ID > 0) THEN
SELECT * FROM `Users` WHERE `User ID` = v_User_ID;
ELSE
SELECT concat('No Users Found: ', Customer_Name);
END IF;
END