【问题标题】:How to insert new field in mysql database如何在mysql数据库中插入新字段
【发布时间】:2011-12-13 05:22:59
【问题描述】:

假设我们有一个带有(id-name)的数据库表My_table

CREATE TABLE `drink` (
`id` int(5) NOT NULL auto_increment,
`name` varchar(64) NOT NULL default '',
PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=9034 ;

INSERT INTO `My_table` VALUES (1, 'my name is someone');

如何使用 php 或其他方式自动添加新字段,以便它可以是 (id-new-name)

and where new = name after we replace spaces to - using

$new = str_replace(' ', '-', trim($name));

所以桌子变成了

CREATE TABLE `drink` (
`id` int(5) NOT NULL auto_increment,
`new` varchar(64) NOT NULL default '',
`name` varchar(64) NOT NULL default '',
PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=9034 ;

INSERT INTO `My_table` VALUES (1, 'my-name-is-someone', 'my name is someone');

我想操作它,因为它有 50 万行,无法手动操作 所以有什么想法!

感谢您的帮助。

【问题讨论】:

  • 您可以使用查询、别名和REPLACE 来做同样的事情。

标签: php mysql regex


【解决方案1】:

您可能想要这样做:

  1. 向表中添加新列:

    ALTER TABLE drink ADD new varchar(100) after id;

  2. 使用您描述的模式为新列设置值:

    UPDATE 饮料 SET new = REPLACE(name, ' ', '-');

资源:

【讨论】:

    【解决方案2】:

    当您在 MySQL 中插入任何内容时,您必须指定列..像这样 INSERT INTObanans(id,sort) VALUES ('1','Green')

    【讨论】:

    【解决方案3】:

    如果只需要返回值,不需要通过new搜索,可以:

    SELECT id, REPLACE(name, ' ','-') AS new, name
    FROM drink
    

    【讨论】:

      【解决方案4】:

      与 Macovei 的建议类似,您可以在插入新记录时生成新名称:

      INSERT INTO drink (new, name) VALUES ('the name', REPLACE('the name', ' ', '-'))
      

      【讨论】:

        猜你喜欢
        • 2012-10-19
        • 2016-07-05
        • 2017-06-16
        • 2012-11-16
        • 1970-01-01
        • 1970-01-01
        • 2014-12-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多