Mysql以更易理解的格式选择into语句

时间:2014-01-19 15:13:13

标签: mysql sql procedure

我经常使用MYSQL程序,并且总是喜欢使用以下插入格式:

INSERT INTO TABLE SET a = AA,
                      b = BB ;

结束

INSERT INTO TABLE (a,b) VALUES (AA, BB);

因为在使用许多变量时阅读起来更简单

然而,当我尝试使用以下语法

SELECT a = AA,
       b = BB 
FROM TABLE;

结束

SELECT AA, BB INTO a, b FROM TABLE; 

语法不起作用, 有没有更简单的方法来编写INSERT INTO查询,类似于insert语句?

1 个答案:

答案 0 :(得分:1)

首先,您应该使用insert的第二种形式。 insert / set仅适用于MySQL。不过你可能更喜欢这个:

INSERT INTO TABLE(a,b)
    SELECT AA as a, BB as b;

关于你的问题,当你写:

SELECT a = AA,
       b = BB 
FROM TABLE;

您正在创建两个布尔表达式,如果正确解析,将返回0,1或NULL。如果您打算为变量赋值,则需要使用:=

SELECT a := AA,
       b := BB 
FROM TABLE;

如果您打算重命名列,请使用as

SELECT AA as a, BB as b
FROM TABLE;

编辑:

我认为这应该有效:

SELECT @a := AA,
       @b := BB 
FROM TABLE;

我认为你不需要declare。如果你想做任务什么都不返回,这可能会有效:

SELECT *
FROM (SELECT @a := AA,
             @b := BB 
      FROM TABLE
     ) t
WHERE 1 = 0;