2013-10-11 51 views

回答

1
$tableFields = array(); 
$result = mysql_query("SHOW COLUMNS FROM mytable"); 
if (mysql_num_rows($result) > 0) { 
    while ($row = mysql_fetch_assoc($result)) { 
     if(substr($row['Field'], -3) == "_fr") { 
      mysql_query("alter table tablename change `".$row['Field']."` `".$row['Field']."_CA`) ; 
     } 
    } 
} 

爲什麼要使用正則表達式?只需使用SHOW COLUMNS查詢並循環結果,找出需要重命名的表名並執行查詢。在循環中,我使用substr獲取字段名的最後3個字符,如果它們等於「_fr」,則會觸發額外的SQL查詢:ALTER TABLE

資源:

  1. 列表MySQL數據表的字段http://php.net/manual/en/function.mysql-list-fields.php
  2. SUBSTR()http://php.net/manual/en/function.substr.php MySQL的
  3. ALTER TABLE:http://dev.mysql.com/doc/refman/5.1/en/alter-table.html
+0

謝謝!設計師在這裏,所以有限的知識和想法正則表達式模式匹配。 – KenSander