【www.gdgbn.com--mysql教程】

数据存在就更新不存在就插入数据sql语句
/*
在mysql教程网站制作中我们会碰到为了节省一点点资源就要把数据库教程操作更简单化,如数据存在就更新不存在就插入数据sql语句,下面我们就会用到 insert  on duplicate key update来实例,
语法:

insert [low_priority | delayed | high_priority] [ignore]
       [into] tbl_name [(col_name,...)]
       values ({expr | default},...),(...),...
       [ on duplicate key update col_name=expr, ... ]


   
下面我们根据上面的语句来做一个实例

创建一个数据表ips教程tats

create table ipstats (
ip varchar(15) not null unique,
clicks smallint(5) unsigned not null default "0"
);

*/

$cn = mysql_connect("127.0.0.1","root","root");
mysql_select_db("abc",$cn);
$sql ="insert into ipstats values("192.168.0.1", 1) on duplicate key update clicks=clicks+1";
mysql_query($sql) or die(mysql_error("插入数据失败"));
echo "操作成功";

//上面我们是用了insert into on duplicate key update来操作,那么我们来看看以前我用的方法

$sql = "select * from ipstats where ip="192.168.0.1"";
$query = mysql_query( $sql );
if( mysql_num_rows( $query ) )
{
 mysql_query( "update ipstats set clicks=clicks+1 where ip="192.168.0.1"");
}
else
{
 mysql_query(" insert into ipstats values("192.168.0.1",1)");
}

//从这里来看我们操作就复杂多了,当然还有一种方法直接在sql执行不过也要三步代码如下

$sql ="if (select * from ipstats where ip="192.168.0.1") {
  update ipstats set clicks=clicks+1 where ip="192.168.0.1";
  } else {
   insert into ipstats (ip, clicks) values ("192.168.0.1", 1);
  }";
mysql_query( $sql );

/*
总结:
    经过上面三种mysql 数据存在就更新不存在就插入数据sql语句实例代码,可以得出insert into on duplicate key update是最方便的快速的,所在我们在web开发是尽量选择最适合当前应用方法来处理问题,上面的三种方法都能实例数据插入如果说存在就更新,但第一种是最好了。
 本站原创教程,转载注明来源http://www.111cn.net/database/database.html
*/

本文来源:http://www.gdgbn.com/shujuku/25787/