脑补一下,楼主的目的是:删除 id = 8 和 id = 9 的记录 所以,删除语句写成了:delete from student where id = 8 and id = 9不过楼主,数据库可不是这么思考并且执行工作任务的 你可以这么理解数据的工作:数据库系统把删除语句进行解释或者编译之后(总之就是读懂你的删除语句之后),会对表进行逐行扫描,如果发现被扫描的行满足 where 子句的条件,则删除这么记录,然后扫描下一行,直到全表扫描完成
对于字段中一个整形的值是不能用 AND 条件的。delete from student where id=9 and id=8你这个是错误的,你的意思应该是 删除 等于 9 或 等于 8 的2个记录把,应该这么写DELETE FROM student WHERE id=8 OR id=9或是这么写 DELETE student WHERE id=8 OR id=9 或是这么写 TRUNCATE student WHERE id=8 OR id=9
大哥,大哥,脑壳短路了么
foreach (var row in rows)
{
if(rows.id==8 &&row.id==9)
{
//你觉着这个条件能找到么
}
}
你根据语义就知道了,当id=9并且id=8,能对吗?
所以应该用or,就是id=8或者id=9,这样的话8和9的两条记录都会被删除
delete from student where id in (9,8)
条件是名字叫张三,性别是女的。
大哥,大哥,脑壳短路了么
所以,删除语句写成了:delete from student where id = 8 and id = 9不过楼主,数据库可不是这么思考并且执行工作任务的
你可以这么理解数据的工作:数据库系统把删除语句进行解释或者编译之后(总之就是读懂你的删除语句之后),会对表进行逐行扫描,如果发现被扫描的行满足 where 子句的条件,则删除这么记录,然后扫描下一行,直到全表扫描完成
delete from student where id=9 OR id=8
或是这么写 TRUNCATE student WHERE id=8 OR id=9
TRUNCATE 这个不能带条件,不好意思。
这样才是规范写法。