mysql - 在循环中使用 MySQL 查询结果

标签 mysql

我刚刚开始使用 SQL 并一直在使用 MySQL。我正在尝试编写一个存储过程,该存储过程将从产品表中的 buyPrice 列中获取每个值,并将每个值存储到一个变量中。然后我希望它将这个变量乘以销售税,然后将每个结果放入我的空 sales_tax 列中。我想用每个项目的销售税填充整个列。当我执行此方法时,出现一些错误,指出 ProductCode 没有默认值。 正确的写法是什么?我知道这不是完成这项任务的最有效方法,只是尝试练习。

DELIMITER //
CREATE PROCEDURE nFirstProcedure()
BEGIN
DECLARE IdValue, counter, holdValue, result INT DEFAULT 0;
DECLARE holdName VARCHAR(30); 
SET counter = 1; 
WHILE counter < ( SELECT COUNT(*) FROM products)
 DO
SET holdValue = (SELECT buyPrice FROM products WHERE sales_tax = null); 
SET result = (holdValue * 0.08);
INSERT INTO products (sales_tax) VALUES (result);

 END WHILE;

END//

DELIMITER ;

最佳答案

您不应该使用循环来执行此操作。只需使用更新:

update products
    set sales_tax = buyPrice * 0.08
    where sales_tax is null;

关于mysql - 在循环中使用 MySQL 查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38943255/

相关文章:

mysql - 我怎样才能加快这个MySQL查询?

java - 在 Spring 启动项目中是否必须配置 DataSource?

MySQL SELECT DISTINCT 行(而不是列)来过滤 $_POST 的重复项

mysql - JPA 不接受@table(name = "table")

php - 尝试将图像插入 blob 字段

php - zend 框架中的 mysql 查询需要一些提示

mysql - mysql查询中的两个where条件

mysql - 奇怪的 MySQL 问题

mysql - 从表中获取所有记录以及单个 MySQL 查询语句中的选定记录

mysql - 我的数据库中的复杂sql语句