有一內容類型的欄位儲存的是語言,因為這寫資料是用Excel導入做的,所以為了處理簡單,很多的語言就用逗號分隔,把所有語言做一個字串,這樣存入的時候就簡單的多。但由於當初數據品質的問題,有一部分“Chinese”是 “Mandarin Chinese”,現在需要把所有的“Mandarin Chinese”改為“Chinese”。
這就需要把一個字串中的部分字串替換掉。對於這樣的問題,一般就是用正規表示式來做替換,或是使用PHP的一些替換的方法,這樣做的話感覺很比較麻煩,時間又比較緊,所以就想了這樣一個懶人辦法,使用explode函數,把要替換的字串做為分割符號,然後把兩個陣列元素中間接上要換成的字串,然後UPDATE一下就行了。
複製程式碼 程式碼如下:
function replace(){
$sql = db_query("SELECT field_languages_value,nid FROM {content_type_company_proges} WHERE o%'aohoo%; ($result = db_fetch_object($sql)){
$a = explode("Mandarin Chinese",$result->field_languages_used_value);
$b = $a[].'Chinese'.$a[1];
db_query("UPDATE content_type_company_profile SET field_languages_used_value = '%s' WHERE nid = %
d",$b,$result->nid);
}
}
>