CREATE TABLE test(
id INT(10) unsigned NOT NULL auto_increment,
score_one_a FLOAT(3) NOT NULL default 0,
score_one_b FLOAT(3) NOT NULL default 0,
score_two_a FLOAT(3) NOT NULL default 0,
score_two_b FLOAT(3) NOT NULL default 0,
code CHAR(3) NOT NULL default '',
count CHAR(5) NOT NULL default '',
PRIMARY KEY(id)
)TYPE=MyISAM;INSERT INTO test(score_one_a,score_one_b,score_two_a,score_two_b,code,count) values('0','0','0','0','123456','03-16');
INSERT INTO test(score_one_a,score_one_b,score_two_a,score_two_b,code,count) values('2.5','3.8','0','0','123456','03-17');
目的:通过一次查询,更新code="123456"并且count="03-16"的score_one_a和score_one_b字段分别为"2.0"和"11.5",更新code="123456"并且count="03-17"的score_two_a和score_two_b字段分别为"4.0"和"12"最后希望得到如下结果:
score_one_a        score_one_b        score_two_a        score_two_b       code      count
2.0                11.5               0                  0                 123456    "03-16"
2.5                3.8                4.0                12                123456    "03-17"

解决方案 »

  1.   

    update test set score_one_a=2.0,score_one_b=11.5 where code='123456' and count='03-16'
    update test set score_one_a=4.0,score_one_b=12 where code='123456' and count='03-17'
      

  2.   

    update test set score_one_a=
    if(code='123456' and count='03-16',2.0,
    if(code='123456' and count='03-17',4.0,0)),
    score_one_b=
    if(code='123456' and count='03-16',11.5,
    if(code='123456' and count='03-17',12,0)),
     
      

  3.   

    update test set score_one_a=
    if(code='123456' and count='03-16',2.0,
    if(code='123456' and count='03-17',4.0,0))
    score_one_b=
    if(code='123456' and '03-16',11.5,
    if(code='123456' and count='03-17',12,0));
      

  4.   


    我想你们是搞错了...我这是四个不同的字段..score_one_a和score_one_b,再是score_two_a和score_two_b不是都是score_one_a和score_one_b