mysql表在第一列存数据,第二列存计算规则如*2或*10,实现查询时第一列数据和第二列数据连着计算
时间: 2024-02-17 15:59:47 浏览: 63
如果你想在 MySQL 中查询时对第一列和第二列的数据进行计算,可以使用 CONCAT 函数和动态 SQL。以下是一个示例代码:
```
-- 创建示例表
CREATE TABLE myTable (
data INT,
rule VARCHAR(10)
);
-- 插入示例数据
INSERT INTO myTable VALUES (2, '*2');
INSERT INTO myTable VALUES (5, '*10');
INSERT INTO myTable VALUES (3, '*3');
-- 查询并计算结果
SET @query = CONCAT('SELECT data ',
GROUP_CONCAT(rule SEPARATOR ' '),
' AS result FROM myTable');
-- 执行动态 SQL 查询
PREPARE stmt FROM @query;
EXECUTE stmt;
```
在这个示例中,我们创建了一个名为 myTable 的表,其中第一列存储数据,第二列存储计算规则。我们插入了几个示例数据,其中一个数据的规则是乘以 2,另一个数据的规则是乘以 10,第三个数据的规则是乘以 3。
我们使用 CONCAT 函数和 GROUP_CONCAT 函数将每个数据的规则连接起来,形成一个完整的动态 SQL 查询语句。然后,我们将这个查询语句存储在一个变量 @query 中,并使用 PREPARE 和 EXECUTE 语句执行这个动态 SQL 查询。
执行这段代码后,将返回一个结果集,其中包含每个数据和它们的计算结果。例如,对于示例数据中的第一行,计算结果为 2*2=4。
阅读全文