作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要创建一个 SQL 查询,以根据对局部变量的 SELECT 查询结果将一些数据插入表中。我的数据库平台是 MySQL 5.1,但我认为这不会有什么不同。基本上,我想做的是:
SELECT id INTO var_name FROM table1 WHERE some_column='something' LIMIT 1;
INSERT INTO table2 (`number`) VALUES (@var_name);
不过,我无法通过第一个语句,因为我收到错误“未声明的变量 var_name”。我也试过将语句放在 BEGIN/END block 和存储过程中,但后来我遇到其他错误,这些错误仅说明 SELECT 行上有错误。我做错了什么?
最佳答案
您需要声明@var_name
,然后选择进入@var_name
。我不太了解 MySQL,但请尝试这样的操作:
declare @var_name varchar(100);
SELECT id INTO @var_name FROM table1 WHERE some_column='something' LIMIT 1;
INSERT INTO table2 (`number`) VALUES (@var_name);
insert into table2 ('number')
select id
from table1
where some_column = 'something' LIMIT 1;
这消除了对变量的需求,并且会更快更容易理解。
关于sql - 使用局部变量的 SELECT INTO 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/472936/
我是一名优秀的程序员,十分优秀!