假设数据库表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万行,不可能手动操作有什么想法吗?
你可能想这样做:
-
向表中添加新列:
-
使用您描述的模式为新列设置值:
更新喝设置新的=取代(名字 , ' ', '-');
资源:
- 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', ' ', '-'))