有人说:程序员都是懒人:-)这话不假,尤其是写sql语句的时候,总想偷懒。
场景:一个表中存在主键,如果某主键为key的记录不存在则插入,如果存在则更新,如果是以前的方法,需要
if(select(....))
update.....
else
insert....
3条SQL语句
其实,MySQL支持一种“insert .... on duplicate key update”的语法,
如下:
INSERT INTO ipstats VAL[......]
有人说:程序员都是懒人:-)这话不假,尤其是写sql语句的时候,总想偷懒。
场景:一个表中存在主键,如果某主键为key的记录不存在则插入,如果存在则更新,如果是以前的方法,需要
if(select(....))
update.....
else
insert....
3条SQL语句
其实,MySQL支持一种“insert .... on duplicate key update”的语法,
如下:
INSERT INTO ipstats VAL[......]
$db=mysql_connect('localhost','xxx','xxx');
//text为可能存在重复的字段名,先用count子句来把TEXT重复的记录的ID拎出来,不全拎,节省资源~
mysql_select_db('vbnew');
$sql="SELECT id, text, count( text )
FROM `dic`
GROUP BY text
HAVING count( text ) >1";
$result=mysql_query($sql)or die("Inva[......]
Mysql升级到5以后,自动编号就不能''了
提示#1264 - Out of range value adjusted for column 'id' at row 1
所以以后要这样写 insert into test id values(null)
或者这样insert into test id values(0)[......]