mysql 数据库插入之前判断数据是否存在

mysql 数据库插入之前判断数据是否存在
如图,如果存在阿飞则不能再插入了?
select count(1) from 表 where 分类名称=‘阿飞’
根据返回值判断还是根据什么判断,最好是那种带插入带判断的
这个是先查后插入的,有没有更好的带插入带判断的
$query=$db->query("select navname from sort where navname='$sort'");
if(mysql_num_rows($query)){
echo "<script>";
echo "alert('有重复数据!');location.href='admin_sort.php'";
echo "</script>";
}else{
$db->query("insert ignore into sort(id,cid,navname,date) values('','','{$sort}',now())");
echo "<script>";
echo "alert('添加成功!');location.href='admin_sort.php'";
echo "</script>";
}

select count(name) from 表 where name='阿飞'
if(count>=1)//当count大于等于1,那么就说明已经存在阿飞了
{
//这里也就不用写啥代码了
}
else
{
insert into 表(name) values('阿飞');
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-02-19
$sql = "INSERT INTO sort (id,cid,navname,date) SELECT '','','{$sort}',now() FROM sort WHERE NOT EXISTS(SELECT * FROM sort WHERE navname='{$sort}') LIMIT 1";
$num = mysql_affected_rows();
if($num ==0) {
// 有重复数据
} else {
//插入成功
}
参看MySQL文档中insert-select语法。

参考资料:http://dev.mysql.com/doc/refman/5.1/zh/sql-syntax.html#insert-select

本回答被提问者采纳
第2个回答  2011-02-19
这个交给数据库处理就好了 用isexist 判断就好了
如果你非要在Java里面判断的话就这样写吧:
try{
//查询goods_select 的代码
//如果goods_select 不存在会抛出异常
}catch(Excetion e){
//这里就写你想要执行的操作
}
第3个回答  2011-02-18
验重操作的原理就是在插入数据之前,
先查询一遍数据库,是否有重复的记录,如果有,就显示不能插入,如果没有,就显示插入成功。
select count(1) from 表 where 分类名称=‘阿飞’
在页面的调用后台程序,可以通过ajax无刷新调用,也可以form提交调用。
相似回答