php - 在同一查询中选择+插入

标签 php mysql sql

这就是我现在用的

public function nuevaPlantilla(){
    $query = $this->sql->prepare("SELECT max(did) as nuevodid FROM ".self::tabla_plantillas);
    $exc = $query->execute();
    if (!$exc){
        return false;
    }
    $resultado = $query->get_result();
    $datos = $resultado->fetch_all();
    $did = ($datos[0][0]*1)+1;
    $query = $this->sql->prepare("INSERT INTO ".self::tabla_plantillas." (did, quien, tipo_usuario, did_filtro, valor, pagina) VALUES (?,?,?,?,?,?)");
    if (!$query){
        return false;
    }
    $query->bind_param("isssss", $did, $this->quien, $this->tipo, "", "", $this->qh);
    $exc = $query->execute();
    $query->close();
    return $exc;
}

它可以工作,但是,是否可以只用一个查询来完成同样的事情?

请不要建议我使用 AUTO_INCRMENT ID。因为不止一行会有相同的内容。

最佳答案

使用这样的东西:

insert into destination_table (id, col2, col3)
select * from 
(
  select coalesce(max(id),0)+1,
         'other_value',
         3
  from source_table
) x

SQLFiddle demo

关于php - 在同一查询中选择+插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19795264/

相关文章:

mysql - phpmyadmin 的连接 URL

sql - 在忽略重复项的同时计算子组的行

php - 使用干预将图像的 DPI 从 72 更改为 300

php - 为什么表字段没有显示像前三个字段那样的值?

php - 在 php 中从服务器中的视频创建缩略图

php - 如果在 laravel 中找不到路由,如何显示 404 页面

mysql - 用户在mysql数据库中拥有多个项目

mysql - 无法使用 JSON 解析 MySql 时间戳

mysql - LOAD_FILE 返回 NULL

sql - 分层属性建模