在mysql網站制作中我們會碰到為了節省一點點資源就要把數據庫操作更簡單化,如數據存在就更新不存在就插入數據sql語句,下面我們就會用到 insert ON DUPLICATE KEY UPDATE來實例,
數據存在就更新不存在就插入數據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.bKjia.c0m/database/database.html
*/