SQL insert 带where 条件的插入语句的问题

来源:百度知道 编辑:UC知道 时间:2024/05/15 05:00:44
INSERT INTO table1(mid,name,msg) VALUES('aa','bb','cc')
where (select count(*) from table1 where mid='aa') <= 0

这语句有没有问题,
我想在插入的同时进行重复记录检测(mid字段),如果重复就不插入。
怎么老提示错误“在关键字 'where' 附近有语法错误。”,“'=' 附近有语法错误。”
应该怎么写(我不想先检测,在插入)?可以合成这样的一条语句么?

你的SQL语句是错误的.
你是想如果mid字段不是aa的话,就插入一条mid=aa的记录.
那么,你可以用内联处理这个问题.
试试这样写:
if noexists (select * from table1 where mid='aa')
INSERT INTO table1(mid,name,msg) VALUES('aa','bb','cc')

if exists (select * from table1 where mid='aa')
INSERT INTO table1(mid,name,msg) VALUES('aa','bb','cc')

即可
你说的那个好象不行

要那么麻烦干嘛,直接在mid列上加唯一索引不就行了

你那个不行,应该这样
if (select count(*) from table1 where mid = 'aa') = 0)
INSERT INTO table1(mid,name,msg) VALUES('aa','bb','cc')

你的sql语句当然错了!
如果是插入一个东西,那这个东西还不存在,那怎么可能有where条件呢,真搞笑

一般不是这样做的,是先去查找mid,如果返回0,那再插入