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

INSERTINTOtable1(mid,name,msg)VALUES('aa','bb','cc')where(selectcount(*)fromtable1whe... INSERT INTO table1(mid,name,msg) VALUES('aa','bb','cc')
where (select count(*) from table1 where mid='aa') <= 0

这语句有没有问题,
我想在插入的同时进行重复记录检测(mid字段),如果重复就不插入。
怎么老提示错误“在关键字 'where' 附近有语法错误。”,“'=' 附近有语法错误。”
应该怎么写(我不想先检测,在插入)?可以合成这样的一条语句么?
展开
 我来答
wuming0214
推荐于2017-10-15 · TA获得超过417个赞
知道小有建树答主
回答量:524
采纳率:0%
帮助的人:610万
展开全部
你的SQL语句是错误的.
你是想如果mid字段不是aa的话,就插入一条mid=aa的记录.
那么,你可以用内联处理这个问题.
试试这样写:
if noexists (select * from table1 where mid='aa')
INSERT INTO table1(mid,name,msg) VALUES('aa','bb','cc')
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
承忆秋0Ie
2007-11-16 · 超过60用户采纳过TA的回答
知道小有建树答主
回答量:187
采纳率:0%
帮助的人:186万
展开全部
if exists (select * from table1 where mid='aa')
INSERT INTO table1(mid,name,msg) VALUES('aa','bb','cc')

即可
你说的那个好象不行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Narvik小红帽
2007-11-16 · TA获得超过648个赞
知道小有建树答主
回答量:549
采纳率:0%
帮助的人:543万
展开全部
你那个不行,应该这样
if (select count(*) from table1 where mid = 'aa') = 0)
INSERT INTO table1(mid,name,msg) VALUES('aa','bb','cc')
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jason_ling
2007-11-16 · TA获得超过393个赞
知道小有建树答主
回答量:823
采纳率:0%
帮助的人:0
展开全部
你的sql语句当然错了!
如果是插入一个东西,那这个东西还不存在,那怎么可能有where条件呢,真搞笑

一般不是这样做的,是先去查找mid,如果返回0,那再插入
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
孟德G
2007-11-16 · TA获得超过5237个赞
知道大有可为答主
回答量:1.1万
采纳率:20%
帮助的人:0
展开全部
要那么麻烦干嘛,直接在mid列上加唯一索引不就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式