【发布时间】:2011-04-17 01:23:49
【问题描述】:
我有一个 MySQL 表(成员),有六列(名字、姓氏、电子邮件、用户名、密码、密钥)
我需要在 用户名 admin
的 Key 列中插入一个字符串我该怎么做呢?
【问题讨论】:
-
您的数据库架构是否设置为接受键列中的字符串?
我有一个 MySQL 表(成员),有六列(名字、姓氏、电子邮件、用户名、密码、密钥)
我需要在 用户名 admin
的 Key 列中插入一个字符串我该怎么做呢?
【问题讨论】:
UPDATE members
SET `Key`='<SOMETHING>'
WHERE username='admin'
LIMIT 1
您应该有一个主键,例如 member_id(通常是 INT 和 auto_increment)。然后你可以这样做:
UPDATE members
SET `Key`='<SOMETHING>'
WHERE member_id=<X>
【讨论】:
key,因为它被mysql用作关键字。改用member_key 或类似的东西。
假设您要插入的字符串是文字字符串'MyString'。您可以像这样更新表格:
UPDATE `members` SET `Key` = 'MyString' WHERE `username` = 'admin'
注意事项:
Key。这主要是因为我知道 MySQL 可能会将单词“key”视为 SQL 保留字,这可能会导致它无法解析我的 UPDATE 查询。Key 具有字符串数据类型,例如TEXT 或CHAR(20)。如果不是(例如,如果它是 INT),那么尝试将其更新为包含字符串是没有意义的。CHAR 或 VARCHAR,足够长以包含此字符串(即它的长度至少为 8)。如果列太短而无法包含我要放入其中的字符串,则 MySQL 将截断字符串或发出错误消息,具体取决于 SQL 模式。或者,如果表中没有username 为“管理员”的行,但您想插入一个,则使用
INSERT INTO `members` (`username`, `key`) VALUES ('admin', 'MyString')
本声明受与上述相同的限制条件约束。此外,NOT NULL 的任何列也需要指定值(自动递增整数字段可能除外)。
【讨论】:
SHOW CREATE TABLE members的输出。
如果您不知道该用户是否存在,请使用 ON DUPLICATE... http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
【讨论】: