gpt4 book ai didi

mysql - 生成表中不存在的随机数,然后将其用于 MySQL 上的 concat 函数

转载 作者:行者123 更新时间:2023-11-29 15:41:03 25 4
gpt4 key购买 nike

问题是,当我在 tbl_tramite 上插入数据时,查询无法识别 random_number 值。它说“IN/ALL/ANY”子查询中存在未知列“random_number”。所有这些都使用 MySQL。

这是一个使用 MariaDB 10.3 的 C# Winforms 应用程序,该查询插入 2 个表,但 random_number 插入到 tbl_tramite。

START TRANSACTION;
INSERT IGNORE tbl_solicitante (cedula, solicitante, telefono, distrito, comunidad, estado)
VALUES(ced, sol, tel, dist, com, 'A');
SELECT LPAD(FLOOR(RAND() * 999999.99), 4) AS random_number
FROM tbl_tramite
WHERE random_number NOT IN (SELECT id_caso FROM tbl_tramite) LIMIT 1;
SET @caso := CONCAT(ced, random_number);
INSERT INTO tbl_tramite (id_caso, solicitante_cedula, usuario_id_usuario, operacion_id_operacion, inspector, detalle, estado,
fecha_ingreso, fecha_regreso_inspeccion, fecha_aprobacion, fecha_entrega)
VALUES(@caso , ced, func, tra, insp, det, est, fech1, fech2, fech3, fech4);
COMMIT;

仅测试此片段:

选择 LPAD(FLOOR(RAND() * 999999.99), 4) AS id_tramite来自 tbl_tramite哪里 id_tramite 不在(从 tbl_tramite 中选择 id_tramite);

不返回任何记录。

我希望 random_number 能够被识别,然后用它来将它与唯一的 id 连接起来,以便其他插入语句使用它。我收到一条来自 c# 上的 try-catch 的消息,指出 random_number 列字段列表不存在。

最佳答案

我用这个语句解决了这个问题:

SET @valor = (SELECT NUM FROM(SELECT LPAD(FLOOR(RAND() * 999999.99), 7) AS NUM) AS SUBQ WHERE NUM NOT IN (SELECT id_caso FROM tbl_tramite) LIMIT 1);

我正在使用 HeidiSQL,所以我不知道它是这个还是其他什么,但为了使其正常工作,我必须用括号将查询括起来。

关于mysql - 生成表中不存在的随机数,然后将其用于 MySQL 上的 concat 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57652052/

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