DELIMITER $$ CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `vn`.`client_getFromPhone`(vPhone VARCHAR(255)) RETURNS int(11) DETERMINISTIC BEGIN /** * Searchs a customer associated to the phone number. * * @param vPhone The phone number * @return The client id or %NULL if not found */ DECLARE vClient INT DEFAULT NULL; CREATE OR REPLACE TEMPORARY TABLE tClient ENGINE = MEMORY SELECT id clientFk FROM `client` WHERE phone = vPhone OR mobile = vPhone UNION SELECT clientFk FROM address WHERE phone = vPhone OR mobile = vPhone UNION SELECT clientFk FROM clientContact WHERE phone = vPhone; SELECT t.clientFk INTO vClient FROM tClient t JOIN `client` c ON c.id = t.clientFk WHERE c.isActive AND c.salesPersonFk LIMIT 1; DROP TEMPORARY TABLE tClient; RETURN vClient; END$$ DELIMITER ;