MySQL分组列

时间:2010-01-14 13:36:18

标签: mysql

有什么方法可以将我的几个专栏组合在一起吗?

在我的脚本中,我需要将几个列设置为相同的值,有没有比在更新查询中键入所有列名更好的方法?

感谢

4 个答案:

答案 0 :(得分:1)

如果这些列必须始终具有相同的值(这似乎毫无意义),您可以在列上设置UPDATE TRIGGER

delimiter |
CREATE TRIGGER somename BEFORE INSERT ON table1
 FOR EACH ROW BEGIN
  SET table1.col2=NEW.col1, table1.col3=NEW.col1;
END;

delimiter ;

但如果是这样的话,那么只使用一列而不是三列是真的有意义。

或者,如果它是一个权利问题(该用户不应该拥有使列不同的权限),您可以构建一个存储过程来进行更新

delimiter |
CREATE STORED PROCEDURE somename(IN val INT,IN whereval INT)
 BEGIN
  UPDATE table1 SET table1.col1=val, table1.col2=val, table1.col3=val
    WHERE table1.id=whereval;
END;

delimiter ;

答案 1 :(得分:0)

您需要输入每个列的名称,没有解决方法。

UPDATE  mytable
SET     col1 = 1,
        col2 = 1,
        …

答案 2 :(得分:0)

不,这是不可能的。

请参阅syntax for update

...
SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}
...

答案 3 :(得分:0)

Update syntax for MySQL要求每列都明确命名

update table set a = 'value', b = 'value'