我需要更新wordpress用户表中每个人的用户名,以便他们的电子邮件地址成为他们的用户名。
我是一个完整的SQL布偶,所以假设你向一个稍微愚蠢的5岁小孩解释这个:)
我打算尝试这样的事情:
UPDATE table_name SET usernamecolumn = emailaddresscolumn
但是因为我不知道自己在做什么,所以我想先在这里问一下!
答案 0 :(得分:2)
你的尝试是正确的。
UPDATE WordpressUsers
SET username = emailaddress;
然而,可能会有一些问题'当你试试这个。
您需要确保emailaddress
符合username
列的大小。
-- Verify length to avoid truncation during UPDATE
SELECT MAX(LENGTH(emailaddress)) FROM WordpressUsers;
然后ALTER
您的表格以允许增加数据长度。
ALTER TABLE WordpressUsers
MODIFY username VARCHAR(200);
DROP TABLE IF EXISTS WordpressUsers;
CREATE TABLE WordpressUsers (
username VARCHAR(50) NOT NULL,
emailaddress VARCHAR(200) NOT NULL);
INSERT INTO WordpressUsers (username, emailaddress)
VALUES ('joesmith', 'joe.smith@test.com')
, ('janedoe', 'jane.doe@test.com')
, ('johndoe', 'john.doe@test.com')
, ('someone', 'someone@test.com')
, ('someone', 'ReallyLongLongEmailAddress@ReallyReallyLongDomain.com');
-- verify
SELECT * FROM WordpressUsers;
-- Verify length to avoid truncation during UPDATE
SELECT MAX(LENGTH(emailaddress)) FROM WordpressUsers;
ALTER TABLE WordpressUsers
MODIFY username VARCHAR(200);
-- UPDATE
UPDATE WordpressUsers
SET username = emailaddress;
-- verify
SELECT * FROM WordpressUsers;