我正在使用MySQL 5.7,由于某些原因,我的INSERT
语句不像以前那样工作,即使语法看起来正确。这是错误-ING在where
声明出来......SQL尝试向列中的一行插入一个值时出错
SQL:
insert into users(age) values('16') where username='r';
我正在使用MySQL 5.7,由于某些原因,我的INSERT
语句不像以前那样工作,即使语法看起来正确。这是错误-ING在where
声明出来......SQL尝试向列中的一行插入一个值时出错
SQL:
insert into users(age) values('16') where username='r';
INSERT
声明不得包含WHERE
条款。去掉它。
如果实际上您正在尝试更新现有的行,请使用UPDATE
语句,而不是INSERT
语句。
update users set age = '16' where username='r';
该语法不正确。你不能像这样使用where
。也许你想是这样的:
insert into users (username, age)
values ('r', '16')
另外,如果该用户已经存在,你可能会寻找一个update
语句来代替:
update users set age = '16' where username = 'r'
如果行的用户名r已经存在,也许你正在寻找更新age
的值,而不是?
使用:update users set age = 16 where username = 'r'
代替。
而且,我只是猜测这里,但也许age
持有一个数值,如果是这样,你可以删除周围16
是的!谢谢! – DRE
如果你想在你的表中插入新记录的报价,你必须编写查询插入数据。
SQL INSERT INTO Statement语法是这样的:
INSERT INTO TABLE_NAME(列1,列2,栏3,...) VALUES(值1,值2,值3,...);
在你的情况,如果你没有记录在数据库中,您的查询将是这样的:
INSERT INTO users (username, age)
VALUES ('r', '16')
但是,如果你想更新现有在表中的记录,你必须使用SQL UPDATE Statement写更新数据的查询。
其语法是:
UPDATE table_name的 SET列1 =值1,列2 =值2,... WHERE some_column = some_value;
更新记录/秒,你有WHERE该记录应修改为指定条款。
要修改用户/ S的年龄的用户名是平等的“R”,这是查询:
UPDATE users SET age = 16 WHERE username = 'r'
,但如果你想修改该使用者名称的所有用户用“R”开头:
UPDATE users SET age = 16 WHERE username = 'r%'
我希望这个解释将帮助您更好地了解SQL语句INSERT新UPDATE现有记录。
我从会话拉用户名,然后为该用户我需要插入值到特定列,会'更新'的工作? – DRE
@DRE - 你想在你的表中插入一条新记录吗?或者你想要更新表中的现有记录吗?这取决于你的情况。 – sgeddes