2017-05-08 47 views
-1

我需要一個幫助。我需要用一個數據更新列值,如果這不是使用PHP和MySQL的列。我在下面解釋我的表格。如何使用PHP和MySQL從表中搜索值來更新數據

db_special:

id  name  special 
1  aaa   1 
2  bbb   6 
3  ccc   1,7 
4  ddd   1,6,7 
5  eee   1 

這裏我的條件是有點複雜。我需要更新7用逗號分隔到那些不具有像76那樣的值的行。根據我的情況,更新後表格應如下所示。

1  aaa  1,7  
2  bbb   6  
3  ccc  1,7  
4  ddd  1,6,7  
5  eee  1,7 

這裏根據條件只有第一行和最後一行是反映。我需要查詢,以便我可以按照預期得到結果。請幫助。

+0

關係數據庫關係正常化開始。所以從那裏開始。 – Strawberry

+0

特別指的是另一張桌子上的ID嗎? –

+0

@RossWilson:是的,它的ID來自其他表格,如果其中一個名稱保存爲逗號分隔的字符串,則爲多個。 – subhra

回答

1

你可以這樣做如下:

$select = "SELECT special FROM db_special" //select data 

while($result) { // go through each loop 
    $special = explode(",", $result['special']) ; 
    if(!in_array(7, $special) && !in_array(6, $special)) { 
     $special_new = (!empty($result['special'])) ? $result['special'].", 7" : "7"; 
     $query = update db_special SET special = $special_new //update data 
    } 
} 
+0

讓我來測試它並讓你知道。 – subhra

+0

我認爲更新查詢缺少正確的條件。我需要更新那些沒有值7/6的行。 – subhra

+0

'if(!in_array(7,$ special)&&!in_array(6,$ special)){'這個條件檢查不是6而不是7分貝 –