gpt4 book ai didi

mysql - MySQL 准备语句中的多个查询(无过程)

转载 作者:行者123 更新时间:2023-11-29 21:13:04 25 4
gpt4 key购买 nike

我有以下 MySQL 脚本,但它不起作用。当我从 IF 中删除第二个查询(SELECT)时(在 INSERT INTO 之后),它开始工作。我的问题是:我可以在准备好的语句中执行多个查询但不使用过程(最后一部分是我为此提出新问题的原因)?

提前致谢...

SQL:

SET @data1 = 'DATA_HERE' COLLATE utf8_general_ci
;

/* Random key */
SET @randomKey = CONCAT( 'rnd', DATE_FORMAT(NOW(), '%Y%m%d') , FLOOR( RAND() * 100 ) ) COLLATE utf8_general_ci
;

/* If not exists do an INSERT else SELECT a warning message */
SET @stmt = IF(
( SELECT EXISTS (
SELECT
t0.id
FROM
table t0
WHERE 1
AND t0.key = @randomKey COLLATE utf8_general_ci
AND t0.data = @data1 COLLATE utf8_general_ci
)
) = 0
, CONCAT( "
INSERT INTO
table
SET
key = @randomKey COLLATE utf8_general_ci
, data = @data1 COLLATE utf8_general_ci;

SELECT
t0.*
FROM
table t0
WHERE 1
AND t0.id = LAST_INSERT_ID(); "
)
, CONCAT( "SELECT CONCAT( 'This random key already exists with this data!' );" )
)
;

PREPARE stmt FROM @stmt
;
EXECUTE stmt
;

最佳答案

如果您的表名为 t0那么你不需要说table t0 。只需使用 SELECT * FROM t0 WHERE /* your predicate */

关于mysql - MySQL 准备语句中的多个查询(无过程),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36205076/

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