如何在MySQL中使用模数变量从列表中插入值?

时间:2014-06-25 18:12:44

标签: mysql

我正在尝试根据模数将临时表中的值插入到另一个表中。

这是我到目前为止所做的:

Drop Table user_password_list;
Create temporary Table messaging_user_password_list
(id Int(5), Password varChar(1000), User varChar(1000), PRIMARY KEY (id));
set @passwordlist =Insert into messaging_user_password_list values (id,'test1', 'fevea'), ('id,test2','ereavef'),(id,'test3','eareave'),(id,'test4','eavear'),(id,'test5','veaewr'),(id,'test1','heahea');
PREPARE stmt1 FROM @passwordlist;     
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;

SELECT distinct user_name,setting_name,setting_value 
FROM settings_user ,(select @modulo:=1) AS modulo_count
WHERE settings_user.Setting_Name in ('Password','User');
Drop user_password_list;

我正在尝试创建一个临时表,循环遍历我自己的现有表并更新所有用户的值。它用于存储我们拥有更多实际用户的环境的密码,而不是允许用户进入环境的环境,因此我正在尝试自动更新用户名和密码的过程。显然还没有更新语句,但为什么我会遇到插入语句的语法错误?

1 个答案:

答案 0 :(得分:0)

@password_list的赋值中,您需要在查询周围添加引号,以便mysql将其视为字符串

set @passwordlist =”Insert into messaging_user_password_list values (id,'test1', 'fevea'), ('id,test2','ereavef'),(id,'test3','eareave'),(id,'test4','eavear'),(id,'test5','veaewr'),(id,'test1','heahea')”;

此外,您需要将该临时表中的字段id声明为auto_increment,以使该查询按原样运行。

create temporary Table messaging_user_password_list (id Int(5) not null auto_increment, Password varChar(1000), User varChar(1000), PRIMARY KEY (id));