我正尝试在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’时有效。如果未设置性别参数,则不返回任何内容。我想要的是,如果性别参数没有设置,它将返回所有用户。要获取所有用户,我应该将性别参数设置为什么值?请帮帮忙谢谢
发布于 2014-04-28 16:54:41
在我的脑海中,没有测试过...
像这样试一下:
gender LIKE CASE WHEN IN_GENDER='' THEN '%' ELSE IN_GENDER END AS MOD_IN_GENDER;或者像这样:
gender LIKE COALESCE(IN_GENDER, '%')https://stackoverflow.com/questions/23334282
复制相似问题