2017-06-30 5 views
-3

以下の例の表を使用して、今のところ私は持っています:UPDATE wc_bidsys_picklist SET vipplays = 'YES' WHERE playoftheday = 'YES';
これは間違いありませんか?もしそうなら、「列(game_date)フィールド値によって設定された特定の範囲内に」をどのように追加することもできますか? 「2016-06-29 00:00:00」から「2017-06-29 00:00:00」の間の範囲。これも可能ですか?

詳細に私の具体的な質問:(部分的に上記の答え)
「wc_bidsys_picklist」と呼ばれるテーブルについては、以下の私の例を使用して:SQLを使用して値を更新する方法がある(「NO」「YES」に)それぞれのは、特定の列のフィールド(vipplays)は、異なる特定の列(playoftheday)のフィールドと等しくない場合にのみ、これらの列のフィールドが一致する値( 'YES')を持つようになります。 3列目(game_date)?
SQLの使用値が等しくない場合にのみ、異なる列のフィールド値と一致するように、ある列のフィールド値を更新するにはどうすればよいですか?

もっと簡単な言い方をすれば、「2016-06-29 00:00:00」から「2017-06-29 00:00:00」までの列(game_date)で、可能であれば、これをSQLで記述することができますか(vipplays)= 'YES'、列のフィールド値(vipplays)= 'NO' ?

UPDATE:この1つは動作しているようですフィドルにいくつかの更新後
マイフィドル:http://sqlfiddle.com/#!9/69cf4/1/0

CREATE TABLE wc_bidsys_picklist 
    (`id` int, `game_date` datetime, `playoftheday` varchar(5), `vipplays` varchar(5)) 
; 

INSERT INTO wc_bidsys_picklist 
    (`id`, `game_date`, `playoftheday`, `vipplays`) 
VALUES 
    (1, '2016-07-01 00:00:00', 'YES', 'NO'), 
    (2, '2016-07-03 00:00:00', 'YES', 'YES'), 
    (3, '2016-07-04 00:00:00', 'YES', 'NO'), 
    (4, '2016-07-04 00:00:00', 'YES', 'NO'), 
    (5, '2016-07-06 00:00:00', 'YES', 'NO'), 
    (6, '2016-07-07 00:00:00', 'YES', 'YES'), 
    (7, '2017-06-08 00:00:00', 'YES', 'NO'), 
    (8, '2017-06-29 00:00:00', 'YES', 'NO') 
; 
UPDATE 
    wc_bidsys_picklist 
SET 
    vipplays = 'YES' 
WHERE 
    playoftheday = 'YES' 
AND 
    (game_date BETWEEN '2016-07-01 00:00:00' AND '2017-06-29 00:00:00'); 


私はこのコミュニティとプログラミングにとって比較的新しいことを繰り返し述べたいと思います。私はすべてのすぐ下の投票なぜ理解していない。メンバーがあなたを助けるよりも、投稿を修正して新しいユーザーをいじめに興味を持っているようです。そして、明らかに私は唯一のものではありません:https://hackernoon.com/the-decline-of-stack-overflow-7cb69faa575dそれは面白い読書です。

+0

AND date_added> = '2016-07-20 00:00:00' AND date_added <= .....除外の場合はNOTまたは<>を使用できます – clearshot66

+2

参照:[なぜ私はMCVEを提供する必要がありますか私は非常にシンプルなSQLクエリであると思われますか?](https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-非常にシンプルなSQLクエリ) – Strawberry

+1

phpmyadminはSQLの質問です。質問には関係ありません。 – ThisGuyHasTwoThumbs

答えて

2

私はこの本がうまくいくと思う:

UPDATE wc_bidsys_picklist SET vipplays = 'YES' WHERE playoftheday = 'YES' AND game_date='2016-07-20 00:00:00';

変更した日付、必要に応じて。

+0

これは質問の重要な要素を失っています:他の列の値と一致しないときに更新するだけです...さらに、日付を '='に設定すると、 1日全体を含むように日付をキャストするか、範囲を使用して日付全体を選択する必要があります。 –

+0

@cale_bなぜSET vipplays = 'YES' where playoftheday = 'はい質問に答えない?はい.Vipplaysの "Yes"値を "Yes"に再度上書きすることはできますが、それでもジョブは完了します。その冗長性を排除したい場合は、別のANDをどこに追加してvipplays = "yes"で行をフィルタリングすることができますが、どちらの方法でもそれらの行に対して操作を続けます。 –

+0

これは範囲を設定しますか?あるいは、これは 'game_date = '2016-07-20 00:00:00''で始まり、今後進められますか?または、これはこの特定のgame_dateの値を変更するだけでしょうか? – kma1289

関連する問題