如何在mysql数据库中插入新字段

时间:2011-10-22 15:46:33

标签: php mysql regex

假设我们的数据库表My_table为(id-name)

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)

以及使用

spaces替换为-后new = name的位置
$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万行,不可能手动完成 所以任何想法!

感谢您的帮助。

4 个答案:

答案 0 :(得分:1)

您可能想要这样做:

  1. 在表格中添加新列:

    ALTER TABLE drink在id;

  2. 之后添加新的varchar(100)
  3. 使用您描述的模式设置新列的值:

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

  4. 资源:

答案 1 :(得分:0)

当你插入任何MySQL时,你必须指定列。就像这样 INSERT INTO {banans {1}} ID为( {排序{1}}

答案 2 :(得分:0)

如果您只需要返回值,而不需要按new搜索,则可以:

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

答案 3 :(得分:0)

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

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