1

いくつかのコードに遭遇し、それを新しい列名に変更しました。スペルの問題について何度かチェックしましたが、役に立ちませんでした。

UPDATE `company_playtime` 
SET front_player_count = CASE 
    WHEN (front_paid + 1) > front_player_count THEN (front_paid + 1) 
    ELSE front_player_count 
END;

このコードはエラーを返します:

エラー番号: 1054 「フィールド リスト」の不明な列「front_player_count」

それが役立つ場合、私はこれで codeigniter と php を使用しています。

ありがとう。

4

1 に答える 1

5

代わりに GREATEST を使用してみませんか? すなわち

UPDATE `company_playtime`
SET front_player_count = GREATEST( front_player_count , front_paid + 1 )

または、影響を受けていない行を更新しないでください。

UPDATE `company_playtime`
SET front_player_count = front_paid + 1
-- use of <= negates requirement for +1 here, should be more efficient
WHERE front_player_count <= front_paid 

http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#function_greatest

これは、言及された列が存在することを前提としていますcompany_playtime

于 2013-06-10T22:50:54.677 に答える