既存の行に空のフィールドがある場合、行を挿入する代わりに既存の行とマージするにはどうすればよいですか?
ここに例があります。既存の行:
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--;
}
}
}
}
}