我经常使用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语句?
答案 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;