1

假设我的行有列:A、B 和 AB

如果我要为 A 列插入值 5,为 B 列插入值 2,MySQL 或其他东西是否可以自动获取这些值并对其进行处理,例如相乘并将其存储到特定列中,例如 AB?

我的基本目标是根据 A 和 B 的乘积(使用 SQL 查询)获取表中的前 5 个值。

我该怎么做呢?

4

3 回答 3

3

使列根据其他列自动计算列的一种解决方案是使用触发器:

mysql> DELIMITER !

mysql> CREATE TRIGGER calc_ab_ins BEFORE INSERT ON mytable 
FOR EACH ROW BEGIN
  SET NEW.ab = NEW.a * NEW.b;
END !

mysql> CREATE TRIGGER calc_ab_upd BEFORE UPDATE ON mytable 
FOR EACH ROW BEGIN
  SET NEW.ab = NEW.a * NEW.b;
END !

mysql> DELIMITER ;
于 2013-07-16T23:01:19.550 回答
2

是的,是的,是的,是的,是的,是的,是的,是的

如果你想像那样插入它们,就这样做。

    Insert into table (column_ab) values (a * b)

或者只是当你选择这样做

   select a , b , a*b as multip from your_table Order by multip desc LIMIT 5

这你会得到 a 和 b 和 top 5 的乘积值。

于 2013-07-16T22:52:52.110 回答
0

当插入 a 和 b 的列时,只需将两者的乘法插入第三列,如下所示。

INSERT INTO Sample (a, b, ab) VALUES (5, 10, 5*10);

SQL Fiddle 在这里发挥作用。

于 2013-07-16T23:15:34.140 回答