0
我有一個mysql數據庫,有多個表,有像somename_fr這樣的列名,用於存儲不同語言的翻譯。使用正則表達式重命名多個MySQL列可能嗎?
我需要將它們重命名爲somename_fr_CA,因此只需粘貼_CA部分即可。
這是可能的做一個查詢,將一次更新它們全部?
我有一個mysql數據庫,有多個表,有像somename_fr這樣的列名,用於存儲不同語言的翻譯。使用正則表達式重命名多個MySQL列可能嗎?
我需要將它們重命名爲somename_fr_CA,因此只需粘貼_CA部分即可。
這是可能的做一個查詢,將一次更新它們全部?
$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
。
資源:
謝謝!設計師在這裏,所以有限的知識和想法正則表達式模式匹配。 – KenSander