数据库的基础问题
有一表,表结构如下:
id name
1 aaa
2 bb
3 aaa
4 cc
怎样用一条SQL语句,任意删除一条name是aaa的记录(只能删除一条)
------解决方案--------------------在数据库中要删除数据就用
DELETE FROM <表名> [WHERE <删除条件> ]
WHERE 是注明要删除哪一行,如果不注明条件就会全部删掉了
还有用DELETE 不能删除某一列,要删就是删一行或多行
------解决方案--------------------delete from table where id =(select top 1 id from table where name= 'aaa ')
------解决方案--------------------mssql里是top 1 别的数据库我不知道
------解决方案--------------------delete from table where id =(select top 1 id from table where name= 'aaa ')
select top 1 的意思是指从符合条件的记录中选取第一个,不是只选取一个,一般而言这个后面要跟order by来确定你是根据什么来对你选出来的这些记录进行排序的,否则删肯定是删一个,但是删哪个不同的数据库会有不同的解释,这样容易出问题的.
不如写成delete from table where id =(select top 1 id from table where name= 'aaa ' order by id)
这样能确保删除的是id号小的那条记录