以下的文章主要讲述的是MySQL数据表中字段的批量修改与复制,最近遇到一点麻烦事,新安装的PHPwind 6.0正式版社区在导入之前的会员帐号资料时,发现很多会员的mail地址貌似胡乱填写的,之前的PHPwind5.5版本没有开启mail地址验证功能,
成都创新互联公司咨询电话:18980820575,为您提供成都网站建设网页设计及定制高端网站建设服务,成都创新互联公司网页制作领域十载,包括办公窗帘等多个行业拥有多年的网站设计经验,选择成都创新互联公司,为企业保驾护航。
所以估计很多用户胡乱填写了mail地址,所以我就想要求所有正式会员重新验证邮件地址来重新激活会员帐号,结果发现社区根本没有这项功能,挣扎了N久,数据库的会员资料MySQL数据表被反复安装=删除了好几遍,总算找到了一个批量修改的方法。
不过这样操作会连社区创建者的账号都改成未激活,所以要是不清楚请不要轻易动手,注意操作前备份相关数据。
在PHPwind 6.0的数据库里,它的会员资料存在pw_members里面,会员帐号正常状态下这个MySQL数据表里的“yz”字段显示的值是1(即表示已经激活了帐号)。如果需要再次邮件激活,则这个值显示的内容必须与另一个字段“regdate”的值相同,程序在验证时自动检测两个字段的内容是否完全一样之后才会进行有效验证,否则会给出参数错误的提示。
例如会员UID 1的“regdate”字段内容是1194067635,那么“yz”字段的值也一样是1194067635;以此类推,如果会员UID 2的“regdate”字段内容是1175320740,那么“yz”字段的值也一样是1175320740...
此时,由于可能的各种原因,“yz”字段的值可能并不是都是1(即表示已经激活了帐号)的状态,如何让“yz”字段的值和“regdate”字段内容保持一致呢?同时,因为会员资料N多,又如何批量转换所有会员帐号的这个字段值呢?我用的方法是这样的
UPDATE table SET 被替换的字段名=被复制的字段名
应用到本文实例: UPDATE pw_members SET yz=regdate
其中“pw_members”是数据表名称;“被替换的字段名”指的是在“pw_members”中你要修改的那个字段的名称,这里是“yz”;而“被复制的字段名”指的是提供字段内容给“yz”字段复制的字段名(好拗口哟!)“regdate”;这样可以批量将每个UID内的“yz”修改并复制成和“regdate”相同的值。而会员在下次登陆时社区就会要求他再次激活邮件帐号。
由于此举是批量修改,因为将会把包括社区创建者在内的所有账号都改成未激活,所以当执行完了以后,要立即把包括社区创建者在内不需要激活的账号改回正常状态。方法是在pw_members数据表的浏览状态下,选择你要改回正常状态的会员帐号,点击“编辑”进入之后找到“yz”字段,将字段的值例如“1194067635”改成“1”,这样这个会员帐号就恢复正常了;也可以用管理员帐号进入社区管理后台“会员管理”里将需要的会员ID手动激活。
另外,如何手动将同一MySQL数据表内不同字段之间的内容批量转换,可以参考下面的命令:
UPDATE table set 字段名=REPLACE(字段名,'原字符串','替换的字符串') where 已知的字段名 LIKE '%原字符串%'
应用到本文实例:
- UPDATE pw_members set yz=REPLACE(yz,'1','2') where yz LIKE '%1%'
其中“pw_members”是MySQL数据表名称;“字段名”指的是在“pw_members”中你要修改的那个字段的名称,这里是“yz”;“原字符串”是字段“yz”现在默认的值“1”;而“替换的字符串”指的是你将要修改的字段“yz”新的默认值“2”。
【编辑推荐】
网站题目:MySQL数据表中字段的批量修改与复制
本文路径:http://www.shufengxianlan.com/qtweb/news8/162558.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联