mysql 定义变量
我想把一个select语句的结果存在一个变量中然后再用这个变量放在一个insert语句里比如变量=selectxxxfromxxx;insertintoxxxvalues...
我想把一个select语句的结果存在一个变量中
然后再用这个变量放在一个insert语句里
比如
变量 = select xxx from xxx;
insert into xxx values(xxx,xxx,变量)
具体要怎么写?之前写
@ID = select dir_id from directory_tbl;
insert into directory_tbl values(xxx,xxx,xxx,xxx,ID);
提示错误,@ID也提示错误 展开
然后再用这个变量放在一个insert语句里
比如
变量 = select xxx from xxx;
insert into xxx values(xxx,xxx,变量)
具体要怎么写?之前写
@ID = select dir_id from directory_tbl;
insert into directory_tbl values(xxx,xxx,xxx,xxx,ID);
提示错误,@ID也提示错误 展开
4个回答
展开全部
在PHP、C++等语言里面可以使用变量,在存储过程里面可以使用变量,SQL语句里面不能使用变量的。
不过你的要求可以用下面的一个SQL语句实现:
insert into YYY表(字段1,字段2,字段3) SELECT 字段1,表达式2,常量3 FROM XXX表
注意:上面是两个表,一般不允许同时对一个表进行操作,如果是一个表,你可以考虑使用临时表:
SELECT 字段1,表达式2,常量3 FROM XXX表 INTO TEMP TMP表;
insert into YYY表(字段1,字段2,字段3) SELECT * FROM TMP表;
不过你的要求可以用下面的一个SQL语句实现:
insert into YYY表(字段1,字段2,字段3) SELECT 字段1,表达式2,常量3 FROM XXX表
注意:上面是两个表,一般不允许同时对一个表进行操作,如果是一个表,你可以考虑使用临时表:
SELECT 字段1,表达式2,常量3 FROM XXX表 INTO TEMP TMP表;
insert into YYY表(字段1,字段2,字段3) SELECT * FROM TMP表;
展开全部
下面是一个简单的
存储过程的例子.
declare
v_index
int;
定义一个
名称为
v_index
的变量,
类型为
int
mysql
变量定义应该只能在
存储过程,
函数里面定义.
不像
oracle
/
sql
server
,
一个
begin
/
end
里面就可以定义/执行了。
mysql>
delimiter
//
mysql>
create
procedure
testwhile()
->
begin
->
declare
v_index
int;
->
->
set
v_index
=
0;
->
->
while
v_index
<
5
do
->
set
v_index
=
v_index
+
1;
->
select
v_index;
->
end
while;
->
->
end//
query
ok,
0
rows
affected
(0.00
sec)
存储过程的例子.
declare
v_index
int;
定义一个
名称为
v_index
的变量,
类型为
int
mysql
变量定义应该只能在
存储过程,
函数里面定义.
不像
oracle
/
sql
server
,
一个
begin
/
end
里面就可以定义/执行了。
mysql>
delimiter
//
mysql>
create
procedure
testwhile()
->
begin
->
declare
v_index
int;
->
->
set
v_index
=
0;
->
->
while
v_index
<
5
do
->
set
v_index
=
v_index
+
1;
->
select
v_index;
->
end
while;
->
->
end//
query
ok,
0
rows
affected
(0.00
sec)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
比如你的user表里有name pwd age三个字段
table表里有name pwd age 三个字段
<?
$sql_sel=select * from user;
$query_sel=mysql_query($sql);//执行sql语句并获得一个结果集
$res=mysql_fetch_array($query); //把结果集转化成数组
//然后按照对应的键名
$sql_ins=insert into table value('.$res[name].','.$res[pwd].','.$res[age].');
$query_ins=mysql_query($sql_ins);
?>
table表里有name pwd age 三个字段
<?
$sql_sel=select * from user;
$query_sel=mysql_query($sql);//执行sql语句并获得一个结果集
$res=mysql_fetch_array($query); //把结果集转化成数组
//然后按照对应的键名
$sql_ins=insert into table value('.$res[name].','.$res[pwd].','.$res[age].');
$query_ins=mysql_query($sql_ins);
?>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
insert into directory_tbl 字段1,字段2,字段3(变量值)
select 值1,值2,结果字段 from xxx where ?
select 值1,值2,结果字段 from xxx where ?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询