首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Regex重命名多个MySQL列?

用Regex重命名多个MySQL列?
EN

Stack Overflow用户
提问于 2013-10-11 00:52:58
回答 1查看 1.1K关注 0票数 0

我有一个具有多个表的mysql数据库,这些表具有像somename_fr这样的列名,用于存储不同语言的翻译。

我需要将它们重命名为somename_fr_CA,所以只需修改_CA部分即可。

这是否可能与一次都更新它们的查询有关?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-11 01:07:22

代码语言:javascript
复制
$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. 更改表:http://dev.mysql.com/doc/refman/5.1/en/alter-table.html
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19308570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档