2010-08-24 186 views
1

我有一個表,它有兩個日期時間,其中一個是'完成'的日期時間,因此,如果它是NULL,那麼用戶還沒有完成。mysql如何不更新日期時間?

我正在嘗試更新,以更新他們的手機號碼。

我該怎麼做才能更新日期時間?

當前如果日期時間爲空,則將其設置爲儘可能早的時間。

這裏是我的查詢:

mysql_query("UPDATE action_4_members 
       SET `mobile` = '{$mobile}', 
        `additional_txt` = '{$additional}', 
        `misc_data` = '{$store_id}' 
       WHERE `id` = '{$member_id}'") or die(mysql_error()); 

這裏是我的表定義:

CREATE TABLE `action_4_members` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `campaign_id` int(11) DEFAULT NULL, 
    `mobile` varchar(25) DEFAULT NULL, 
    `join_txt` varchar(160) DEFAULT NULL, 
    `join_txt_date` datetime DEFAULT NULL, 
    `additional_txt` varchar(160) DEFAULT NULL, 
    `additional_txt_date` datetime DEFAULT NULL, 
    `misc_data` text, 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM AUTO_INCREMENT=687 DEFAULT CHARSET=latin1 

回答

1

的UPDATE語句只會影響柱(一個或多個)指定(有一點需要注意):

UPDATE YOUR_TABLE 
    SET mobile_number = '123-456-7890' 

需要注意的是,如果您在日期時間列上設置了DEFAULT ON UPDATE TIMESTAMP約束當運行UPDATE語句時,datetime列值將更新爲。如果你不想要這個,你需要糾正datetime列上的DEFAULT約束。

+0

剛剛添加我的表格定義,這是否仍然適用? – Hailwood 2010-08-24 02:34:08

+0

@Hailwood:讚賞,但沒有DEFAULT約束,則有人觸發日期時間列人數。列不會自己填充... – 2010-08-24 02:37:34

+0

可以讓php自己做任何事情嗎? (即預處理) – Hailwood 2010-08-24 02:39:22