我有一个具有多个表的mysql数据库,这些表具有像somename_fr这样的列名,用于存储不同语言的翻译。
我需要将它们重命名为somename_fr_CA,所以只需修改_CA部分即可。
这是否可能与一次都更新它们的查询有关?
发布于 2013-10-11 01:07:22
$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。
资源:
https://stackoverflow.com/questions/19308570
复制相似问题