我正在尝试在 mysql 中创建一个函数,如果表中已经存在 id,它将返回布尔值。我在网上找到的大多数解决方案都需要同时使用 php 和 mysql 的解决方案,但我正在尝试做的是一个纯粹在 mysql 中以函数形式的解决方案。
我的简化 mysql 表如下:
CREATE TABLE IF NOT EXISTS table1 (
`user_id` VARCHAR(12) UNIQUE,
`name` VARCHAR(128),
PRIMARY KEY (`user_id`)
);
我的第一次尝试如下:
DELIMITER *
DROP FUNCTION IF EXISTS CheckExistId*
CREATE FUNCTION CheckExistId (user_id VARCHAR(12)) RETURNS BOOL
BEGIN
DECLARE isExist BOOL;
SET isExist = 0;
SELECT EXISTS(SELECT * FROM table1 WHERE `user_id`=user_id) INTO isExist ;
RETURN isExist;
END*
DELIMITER ;
我的第二次尝试:
DELIMITER *
DROP FUNCTION IF EXISTS CheckExistId*
CREATE FUNCTION CheckExistId (user_id VARCHAR(12)) RETURNS BOOL
BEGIN
DECLARE isExist BOOL;
DECLARE countRow INT;
SELECT COUNT(`user_id`) INTO countRow FROM table1 WHERE `user_id`=user_id;
IF countRow = 0 THEN SET isExist = 1;
ELSE SET isExist = 0;
END IF;
RETURN isExist;
END*
DELIMITER ;
两者都没有给我预期的结果。对于如何解决这个问题,有任何的建议吗?