如何在現有行中存在空字段的情況下合併行與現有行而不是插入行?在MySQL中合併的另一行[+ php?]
這裏是一個例子。現有行:
id f1 f2 f3 f4 ...
0 a b
1 c
行插入:
id f1 f2 f3 f4 ...
NULL d
所需結果:
id f1 f2 f3 f4 ...
0 a d b
1 c
我做了這個一個PHP函數,每個字段和更新其SELECTS
空行數據在這一行,但這太慢了。有什麼方法可以改進和加速這段代碼嗎?
foreach($cond as $cond_name = > $cond_value) {
if ($cond_value != '') {
$cond_count++;
$q = 'SELECT `id` FROM `g_ul_cond_orders` WHERE `ul_id`='.$ul_id.' AND `'.$cond_name.'`="" LIMIT 1;';
$r = mysql_query($q);
if ($r) {
if ($row = mysql_fetch_assoc($r)) {
$q = 'UPDATE `g_ul_cond_orders` SET `'.$cond_name.'`="'.$cond_value.'" WHERE `id`='.$row['id'].';';
$r = mysql_query($q);
if ($r) {
$cond[$cond_name] = '';
$cond_count--;
}
}
}
}
}
哦,簡單..只是沒有想到這一點。謝謝。在這種情況下,時間會減少,因爲數據只傳送一次。如果SELECT返回空結果,它不會更新表。現在最好的交易 – Goover
是的,快了近8倍。剛剛檢查出來。 – Goover
哈哈..它太快了,因爲它不工作。對不起,我沒有進行預期的測試,所以在查詢時出現錯誤。 – Goover