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


How to insert new field in mysql database

假设数据库表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万行,不可能手动操作有什么想法吗?

你可能想这样做:

  1. 向表中添加新列:

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

    更新喝设置新的=取代(名字 , ' ', '-');

资源:

    http://dev.mysql.com/doc/refman/5.5/en/alter-table.html
  • http://dev.mysql.com/doc/refman/5.0/en/string-functions.html

当你在MySQL中插入任何东西时,你必须指定列,像这样INSERT INTO香蕉( id , sort ) VALUES ('1','Green')

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

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

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

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