MySQL存储过程基于参数返回值

时间:2014-04-28 06:47:29

标签: php mysql

我正在尝试在MySql中创建一个存储过程,它将根据性别参数返回所有用户,这是我的代码:

DELIMITER $$

USE `my_database`$$

DROP PROCEDURE IF EXISTS `GET_ALL_USERS`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `GET_ALL_USERS`(IN IN_GENDER CHAR)
    COMMENT 'Get All Users'
BEGIN
    SELECT
        *
    FROM
        users
    WHERE
        gender = IN_GENDER;
END$$

DELIMITER;

当参数设置为“f”或“m”时,此代码有效。如果未设置性别参数,则不返回任何内容。我想要的是如果没有设置性别参数,它将返回所有用户。我应该为性别参数设置什么值以获取所有用户?请帮助谢谢

1 个答案:

答案 0 :(得分:0)

脱离我的头顶,没有经过测试......

试试这样:

gender LIKE CASE WHEN IN_GENDER='' THEN '%' ELSE IN_GENDER END AS MOD_IN_GENDER;

或者像这样:

gender LIKE COALESCE(IN_GENDER, '%')