2013-07-30 43 views
0

你好,我只想問。如何使用條件更新數據庫中的多行。 因爲我在更新我的表時遇到問題。 這是我需要做的。我有2個表,一個是ref_cities和一個ref_draft如何用條件使用mysql數據庫更新多行?

在我ref_cities我有一列

mysql> desc ref_cities 
+---------------+--------------+------+-----+---------+-------+ 
| Field   | Type   | Null | Key | Default | Extra | 
+---------------+--------------+------+-----+---------+-------+ 
| id   | int(11)  | NO | PRI | NULL |  | 
| name   | varchar(255) | YES |  | NULL |  | 
| province_id | int(11)  | YES |  | NULL |  | 
| province_code | varchar(5) | YES |  | NULL |  | 
+---------------+--------------+------+-----+---------+-------+ 
4 rows in set (0.01 sec) 

在我ref_draft我有這個

mysql> desc ref_draft; 
+--------------+-------------+------+-----+---------+----------------+ 
| Field  | Type  | Null | Key | Default | Extra   | 
+--------------+-------------+------+-----+---------+----------------+ 
| id   | int(10)  | NO | PRI | NULL | auto_increment | 
| municipality | varchar(50) | YES |  | NULL |    | 
| name   | varchar(50) | YES |  | NULL |    | 
| city_code | int(11)  | YES |  | NULL |    | 
+--------------+-------------+------+-----+---------+----------------+ 
4 rows in set (0.03 sec) 

在我ref_cities值(我僅列舉一行用於示例)

mysql> select * from ref_cities where name like '%manila%'; 
+------+--------+-------------+---------------+ 
| id | name | province_id | province_code | 
+------+--------+-------------+---------------+ 
| 1976 | Manila |   58 | MNL   | 
+------+--------+-------------+---------------+ 
1 row in set (0.00 sec) 

在我ref_draft值

mysql> select * from ref_draft where municipality like '%manila%'; 
+-----+----------------+----------------+-----------+ 
| id | municipality | name   | city_code | 
+-----+----------------+----------------+-----------+ 
| 1 | CITY OF MANILA | Barangay 1  |  NULL | 
| 2 | CITY OF MANILA | Barangay 2  |  NULL | 
| 3 | CITY OF MANILA | Barangay 3  |  NULL | 
| 4 | CITY OF MANILA | Barangay 4  |  NULL | 
| 5 | CITY OF MANILA | Barangay 5  |  NULL | 
| 6 | CITY OF MANILA | Barangay 6  |  NULL | 
| 7 | CITY OF MANILA | Barangay 7  |  NULL | 
| 8 | CITY OF MANILA | Barangay 8  |  NULL | 
| 9 | CITY OF MANILA | Barangay 9  |  NULL | 
| 10 | CITY OF MANILA | Barangay 10 |  NULL | 
| 11 | CITY OF MANILA | Barangay 11 |  NULL | 
| 12 | CITY OF MANILA | Barangay 12 |  NULL | 
| 13 | CITY OF MANILA | Barangay 13 |  NULL | 
| 14 | CITY OF MANILA | Barangay 14 |  NULL | 
| 15 | CITY OF MANILA | Barangay 15 |  NULL | 
| 16 | CITY OF MANILA | Barangay 16 |  NULL | 

這應該是樣本輸出

+-----+----------------+----------------+-----------+ 
| id | municipality | name   | city_code | 
+-----+----------------+----------------+-----------+ 
| 1 | CITY OF MANILA | Barangay 1  |  1976 | 
| 2 | CITY OF MANILA | Barangay 2  |  1976 | 
| 3 | CITY OF MANILA | Barangay 3  |  1976 | 
| 4 | CITY OF MANILA | Barangay 4  |  1976 | 
| 5 | CITY OF MANILA | Barangay 5  |  1976 | 
| 6 | CITY OF MANILA | Barangay 6  |  1976 | 
| 7 | CITY OF MANILA | Barangay 7  |  1976 | 
| 8 | CITY OF MANILA | Barangay 8  |  1976 | 
| 9 | CITY OF MANILA | Barangay 9  |  1976 | 
| 10 | CITY OF MANILA | Barangay 10 |  1976 | 
| 11 | CITY OF MANILA | Barangay 11 |  1976 | 
| 12 | CITY OF MANILA | Barangay 12 |  1976 | 
| 13 | CITY OF MANILA | Barangay 13 |  1976 | 
| 14 | CITY OF MANILA | Barangay 14 |  1976 | 
| 15 | CITY OF MANILA | Barangay 15 |  1976 | 
| 16 | CITY OF MANILA | Barangay 16 |  1976 | 

但我得到了

+----+----------------+-------------+-----------+ 
| id | municipality | name  | city_code | 
+----+----------------+-------------+-----------+ 
| 1 | CITY OF MANILA | Barangay 1 |  1301 | 
| 2 | CITY OF MANILA | Barangay 2 |  1301 | 
| 3 | CITY OF MANILA | Barangay 3 |  1301 | 
| 4 | CITY OF MANILA | Barangay 4 |  1301 | 
| 5 | CITY OF MANILA | Barangay 5 |  1301 | 
| 6 | CITY OF MANILA | Barangay 6 |  1301 | 
| 7 | CITY OF MANILA | Barangay 7 |  1301 | 
| 8 | CITY OF MANILA | Barangay 8 |  1301 | 
| 9 | CITY OF MANILA | Barangay 9 |  1301 | 
| 10 | CITY OF MANILA | Barangay 10 |  1301 | 

條件是首先我將從ref_cities獲取名稱和ID。在此之後,我會發現是否在市政專欄中找到了該名稱。如果發現它會將我的ref_cities中的id從我的ref_draft插入到city_code中。

這是我的PHP代碼,用於更新行。 (使用笨IM)

<?php 

$findCityName = "SELECT id,name FROM ref_cities"; 
$resultFindCity = $this->db->query($findCityName); 

foreach($resultFindCity->result_array() as $row){ 

     $name = $row['name']; 
     //$name = 'Manila'; 

     $update = array(
      'city_code' => $row['id'] 
     ); 
     $this->db->like('municipality','{$name}'); 
     $this->db->update('ref_draft',$update); 

} 
?> 
+0

請'var_dump($ row);'在foreach中獲取轉儲數據。 – Bora

回答

3
$this->db->like('municipality','{$name}'); 

應該是

$this->db->like('municipality',"{$name}"); 

OR

$this->db->like('municipality',$name); 

內部單引號變量被當作一個字符串,而不是實際的變量。可以將其放在雙引號內,也可以不使用任何引號。

+0

好的,謝謝我會嘗試 – rochellecanale

+0

但我總是得到錯誤的city_code。 – rochellecanale

+0

@ user2585508查看生成的更新查詢。 –