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也提示错误
展开
 我来答
阳光上的桥
2010-02-10 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21424 获赞数:65789
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
在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表;
贲亭晚呼诗
2020-02-17 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.3万
采纳率:25%
帮助的人:869万
展开全部
下面是一个简单的
存储过程的例子.
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)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
惊风云
2010-02-10 · TA获得超过168个赞
知道小有建树答主
回答量:148
采纳率:0%
帮助的人:61.2万
展开全部
比如你的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);

?>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
湖光居士
2010-02-10 · TA获得超过212个赞
知道小有建树答主
回答量:193
采纳率:0%
帮助的人:189万
展开全部
insert into directory_tbl 字段1,字段2,字段3(变量值)
select 值1,值2,结果字段 from xxx where ?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式