Mysql 之 一些原生使用

1、INSERT ... ON DUPLICATE KEY UPDATE     不存在则创建,存在则更新

$sql_store = "INSERT INTO `device_ios_records` (`device_id`, `name`, `url`, `length`) VALUES (?, ?, ?, ?) ON DUPLICATE KEY UPDATE `url`=?, `length`=?, `record_id`=LAST_INSERT_ID(`record_id`)";

$result = DB::insert($sql_store, array($device_id, $name, $path, $length, $path, $length));

2、count(1) 比 count(*) 要好,* 是全表扫描,1是不为null

 

防止表中出现重复项:Link

您可以在具有适当字段的表上使用PRIMARY KEYUNIQUE索引来停止重复记录。

3、INSERT IGNORE INTO     INSERT IGNORE命令保留第一组重复的记录,并丢弃其余的记录。存在UNIQUE索引时,如果插入值已存在就直接丢掉而不会产生错误。

$sql = "INSERT IGNORE INTO `device_ios_locations` (`device_id`, `latitude`, `longtitude`, `accuracy`, `locate_time`) VALUES (?, ?, ?, ?, FROM_UNIXTIME(?));";

$result = DB::insert($sql, array($device_id, $latitude, $longtitude, $accuracy, $timestamp));

 

你可能感兴趣的:(#,MySQL)