SELECT ID
FROM TableName
WHERE ID = $ID
INSERT INTO TableName
VALUES (Value1, Value2)
REPLACE works exactly like INSERT, except that if an old row in the table has the same value as a new row for a PRIMARY KEY or a UNIQUE index, the old row is deleted before the new row is inserted. See Section 12.2.5, “INSERT Syntax”.
IF EXISTS (SELECT * FROM database_table WHERE id='value')
UPDATE database_table SET (...) WHERE thingie='value2'
ELSE
INSERT INTO database_table VALUES (...)
UPDATE database_table SET (...) WHERE id='value'
IF @@ROWCOUNT=0
INSERT INTO database_table VALUES (...)
$query = ("IF EXISTS (SELECT * FROM `table` WHERE `table_id` = '$id')
UPDATE `table` SET `item` = '$item' WHERE `table_id` = '$id'
ELSE
INSERT INTO `table` VALUES `table` = '$id', `item` = '$item'");
if ( !mysql_query( $query ) ) {
echo mysql_error();
echo "There was an error, please try again.";
}
Then see if there are any results. If so, you can perform your UPDATE. If not, do an INSERT
$query = ('INSERT INTO `key` (`id`, `story_id`, `contains`) VALUES (\'\',\''.$id.'\',\''.$cont.'\')
ON DUPLICATE KEY UPDATE `id` = LAST_INSERT_ID(`id`), `contains` = '.$cont.';');
SET @previous_id := NULL ;
INSERT INTO test( id, note ) VALUES ('1', 'new')
ON DUPLICATE KEY UPDATE id = IF( (@previous_id := id) <> NULL IS NULL , VALUES (id), NULL ), note = values(note);
SELECT if( @previous_id IS NULL , 'Inserted', 'Updated' ) 'Action', if( @previous_id IS NULL , id , @previous_id ) 'ID' from test order by id desc limit 1;
DROP TABLE IF EXISTS `test`;
CREATE TABLE IF NOT EXISTS `test` (
`id` int(10) NOT NULL auto_increment,
`note` varchar(60) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;