2016-04-20 11 views
0

テーブルに異なる日付列があり、テーブルの一部の行に1月の値の1番目の値「YYYY-01-01」があります。異なる列の複数の値をMysql内の値に基づいてヌルに更新します

私はクエリを実行し、1st Jan YYYYの日付フィールドを持つすべての行を見つけることができます。

select * from table 
where dob like '%01-01' 
OR start_date like '%01-01' 
OR ... 

しかし、これらの値をNULLに設定するにはどうすればよいですか。

私が試してみた:

動作しません
update table 
set dob = NULL 
where dob='%01-01'; 
update table 
set start_date= NULL 
where start_date='%01-01'; 
... 

...

+0

はなぜ他の問題の一部に "LIKE" を使用し、 "等しい" 修正しました!?! – Strawberry

+0

それは間違いでしたか?ああああ... – user95437

答えて

1

私はこれを使用します。

UPDATE table SET dob = null WHERE dob LIKE '%01-01' 

EDITは:

1

を使用update

update table 
    set start_date = NULL 
    where day(start_date) = 1 and month(start_date) = 1; 

update table 
    set dob = NULL 
    where day(dob) = 1 and day(dob) = 1; 

あなたにも列ごとに別々の更新を行う可能性があります。ロジックを単一のクエリにカプセル化することはできますが、これは単なる複雑なクエリです。

日付にlikeを使用しないでください。 like文字列です。 MySQLには適切な日付機能がたくさんあります。

注意:実際には1月1日に生まれた人もいます。

+0

あなたの助言は役に立ちます、ありがとう。 – user95437

関連する問題