现在我有一个数据表,其中有一个字段是type。数据表中有N条信息,
我希望更改 type的值,条件是根据不同的classid来更改。
但是现在又多组条件对应的多组type值
比如当class=1时,type=rass
class=8时,type=bbcc
还有多组这样的情况,请问怎样一次性一一对应的更新完所有的type。我自己没办法了,刚学,我能想到的就是update table set type=相应值 where class=相应值

解决方案 »

  1.   

    CASE value WHEN [compare_value] THEN result [WHEN [compare_value] THEN result ...] [ELSE result] END
    CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END 
    http://dev.mysql.com/doc/refman/5.1/en/control-flow-functions.html#operator_case
      

  2.   

    你的数据库不符合第三范式,建议分解:新建(class,type),将type从原表中去除。
      

  3.   

    SQL中where查询符合条件的,然后更新
      

  4.   

    1楼兄弟给的SQL购偏的,还是我没学到
      

  5.   

    我有点不确定情况了,的确这type字段有数据依赖,同时过多的重复,所以新开一个表,但是因为我的这个表的字段数量30以上,同时因为函数编写的限制,只能一次取出所有字段的值,如果再把字段加入移到另一个表(因为DB中还有一个表是符合第三范式适合储存该字段,而那个表的字段也超过20),一次取大于50字段的多表查询,是不是代价太大了。
      

  6.   

    如果你的class和type对应关系没有规律的话,就不要用if,else或case when then来写了,不然得写多长?你单独建立一个表,把class和type的对应关系存进去,更新表的时候与这个表做下联查
      

  7.   

    如果你的class和type对应关系没有规律的话,就不要用if,else或case when then来写了,不然得写多长?你单独建立一个表,把class和type的对应关系存进去,更新表的时候与这个表做下联查
      

  8.   

    这里有希望能帮到你http://blog.csdn.net/cyd1919/article/details/8088402