获取上一个查询的值

时间:2017-11-04 02:27:16

标签: mysql sql stored-procedures

我有一个包含大量查询的程序

print("Start")
for i in [3,4,5]
  print("Hola, ahora i vale"+str(i) + "y su exponent" + i ** 2 )
print("End")

如何从之前的查询中获取价值?

如何检测它是否为空?

2 个答案:

答案 0 :(得分:2)

如果您一次插入一行并且想要最新的自动递增ID,则可以使用;

select last_insert_id()

记录在案here

如果他们插入多行,那么这可能会有点棘手。

如果要“返回”select中的值,请使用变量。 。 。 :=into

答案 1 :(得分:0)

我建议你使用"临时表"。您可以创建临时表来存储数据并对其执行查询根据该会话

所以,它可能是这样的......

DELIMITER $$ CREATE PROCEDURE test()

BEGIN

CREATE TEMPORARY TABLE IF NOT EXISTS tempTable_A AS (SELECT * FROM a)

INSERT INTO b ...;          //use result tempTable_A  query
UPDATE c ...;               //use result tempTable_A  query
INSERT INTO d ...;          //use result tempTable_A  query

CREATE TEMPORARY TABLE IF NOT EXISTS tempTable_D AS (SELECT * FROM d) //use result tempTable_A  query
INSERT INTO e ...;          //use result tempTable_D  query
UPDATE a ...;               //use result tempTable_D  query



END  $$

示例可以在这里找到: Create a temporary table in a SELECT statement without a separate CREATE TABLE

文档链接: https://dev.mysql.com/doc/refman/5.7/en/create-table.html