我有一些看起来像这样的代码。我必须保留表中的一个自动递增字段(在其他表中使用)。我想简化和优化此代码。
$query ="SELECT * FROM models WHERE col1 = 'foo'"; $testResult = mysql_query($query) or die('Error, query failed'); if(mysql_fetch_array($testResult) == NULL){ //insert... $query ="INSERT INTO models (col1, col2, col3) VALUES ('foo', 'bar', 'alph')"; $result = mysql_query($query) or die('Error, query failed'); }else{ //update... $query = "UPDATE models SET col1='foo', col2='bar', col3='alph' WHERE col1='foo' AND col2='bar'"; $result = mysql_query($query) or die('Error, query failed'); }
编辑:主键ID是自动递增的字段。我永远都不想改变。但是,当另一个字段重复时,这就是我要更新该记录的时间。
如何替换成:
REPLACE INTO models ( col1, col2, col3 ) VALUES ( 'foo', 'bar', 'alpha' )
假设col1是您的主键,如果已经存在一个值为’foo’的行,它将更新其他两列。否则,它将插入新行。