gpt4 book ai didi

mysql - 使用 Mysql 存储过程检查行是否存在不起作用

转载 作者:行者123 更新时间:2023-11-29 01:22:40 26 4
gpt4 key购买 nike

在 mysql 命令提示符下,我运行:

SELECT EXISTS (SELECT 1 FROM test1 WHERE name1 like '%Nadiya%')

返回

EXISTS (SELECT 1 FROM test1 WHERE name1 like '%Nadiya%')
1

但以下过程不会打印为存在。我需要进入 IF 语句。请让我知道什么改变能让我进入 IF。

DELIMITER //
CREATE PROCEDURE verifyAndUpdate30(in searchName varchar(12), in searchId bigint, inout result int)
BEGIN
IF ( SELECT EXISTS (SELECT 1 FROM test1 WHERE name1 like '%searchName%') ) THEN
SELECT 'EXISTS';
UPDATE TEST SET testFlag=1 WHERE id=searchId;
SET result=1;
ELSE
SELECT 'DOES NOT EXISTS';
END IF;

SELECT result;
END
//
DELIMITER ;

程序调用:

SET @increment = 0;
call verifyAndUpdate30('Nadiya', 5532, @increment);

最佳答案

您需要使用 CONCAT('%', searchName, '%') 以困难的方式构造 LIKE 字符串:

,,,
IF ( SELECT EXISTS (
SELECT 1
FROM test1
WHERE name1 like CONCAT('%', searchName, '%') -- Build %searchName% from parts
) ) THEN
,,,

关于mysql - 使用 Mysql 存储过程检查行是否存在不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14013249/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com