标签: sql-delete

选择后立即删除PHP DELETE

我有一个PHP服务器脚本,它从MySQL数据库中选择一些数据.

只要我有mysql_query中保存在我自己的局部变量mysql_fetch_assoc的结果,我想删除我只是选择的行.

这种方法的问题在于,似乎PHP已经对我的局部变量进行了传递而不是传值,并且我的局部变量在delete命令之后变得不确定.

反正有没有绕过这个?这是我的代码:

    $query="SELECT id, peerID, name FROM names WHERE peer = $userID AND docID = '$docID' AND seqNo = $nid";
    $result = mysql_query($query);

    if (!$result)
        self::logError("FAIL:1 getUsersNamesUpdate() query: ".$query."\n");     

    if (mysql_num_rows($result) == 0)
        return array();

    $row = mysql_fetch_assoc($result);
    $result = array();
    $result["id"] = $row["id"];
    $result["peerID"] = $row["peerID"];
    $result["name"] = $row["name"];

    $query="DELETE FROM names WHERE id = $result[id];";
    $result = mysql_query($query);

    if (!$result)
        self::logError("FAIL:2 getUsersNamesUpdate() query: ".$query."\n");         

    return $result;
Run Code Online (Sandbox Code Playgroud)

php mysql select sql-delete

3
推荐指数
1
解决办法
2221
查看次数

MySQL从2个表中删除记录

我希望根据ID在1个查询中删除两个不同表中的信息.

我已经在这里尝试了几种解决方案来完成这项任务,但仍然没有完成我正在尝试做的事情.

表1 - 内容

---------- ---------
 ContentID | Content
--------------------
Run Code Online (Sandbox Code Playgroud)

表2 - 投票

---------------------------
 VoteID | ContentID | Vote 
---------------------------
Run Code Online (Sandbox Code Playgroud)

我想根据其ID任何或所有投票删除内容行(可能有0个投票记录).我希望使用交易,级联删除,或使用2次不同的查询.

什么是最好的 - LEFT JOIN?内部联接?

这里的任何帮助将不胜感激.

mysql sql-delete

3
推荐指数
1
解决办法
7478
查看次数

更新mysql表.一个字段= old_value - 1

我需要做的是: - 从表中删除一个条目formfields - 使用排序更新每个字段>(删除字段的排序) - 将更新字段的顺序设置为当前值减1(例如,如果字段上的当前排序是8,那么它应该设置为7).

这可能在一个查询中?或者我该如何实现?

php mysql sql-delete

3
推荐指数
1
解决办法
5642
查看次数

删除除以外的所有行

当我执行此查询时:

DELETE FROM `wp_posts` WHERE id NOT IN 
  (SELECT id FROM wp_posts WHERE post_status = 'publish')
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

您不能在FROM子句中为更新指定目标表'wp_posts'

不确定这里的语法问题.

mysql syntax sql-delete

3
推荐指数
1
解决办法
1万
查看次数

删除递归子项

我有以下sql让我所有的根forumpost的子孙.

with recursive all_posts (id, parentid, root_id) as
                (
                select t1.id,
                t1.parent_forum_post_id as parentid,
                t1.id as root_id
                from forumposts t1

                union all

                select c1.id,
                c1.parent_forum_post_id as parentid,
                p.root_id
                from forumposts
                c1
                join all_posts p on p.id = c1.parent_forum_post_id
                )

                select fp.id
                from forumposts fp inner join all_posts ap
                on fp.id=ap.id 
                where
                root_id=1349 
                group by fp.id
Run Code Online (Sandbox Code Playgroud)

我想要删除选中的记录.像从forumposts fp中删除的东西,其中fp.id =(最后从上面的代码中选择),但这不起作用(我在"DELETE"或附近得到语法错误).这是我第一次使用递归,我必须遗漏一些东西.任何帮助表示赞赏.

postgresql recursive-query sql-delete

3
推荐指数
1
解决办法
4208
查看次数

除了一行外,删除整个表

假设我有一个包含200k +行的表的数据库.
这个表有一个id为1800的固定元组.其余的元组序列从300k +开始.
我需要清理这个表,删除所有记录而不删除id为1800的一个寄存器.我想出了可能运行的3种类型的查询:

DELETE FROM table WHERE id > 1800
DELETE FROM table WHERE id <> 1800
DELETE FROM table WHERE id NOT IN (1800)
Run Code Online (Sandbox Code Playgroud)

我觉得第一个比其他人更快,但我不确定,因为所有其他数据的ID都大于1800.

哪一个更快,为什么?此外,如果有更快的方法删除不能删除的记录,请告诉我.

sql postgresql optimization sql-delete

3
推荐指数
2
解决办法
3万
查看次数

删除表中的重复条目

我想删除下表中的多个重复键:

id | name   | uid
1  | ekta   | 5
2  | ekta   | 5
3  | sharma | 10
4  | sharma | 10
Run Code Online (Sandbox Code Playgroud)

希望它像

id | name   | uid
1  | ekta   | 5
3  | sharma | 10
Run Code Online (Sandbox Code Playgroud)

我正在使用mysql.可能吗?我无法使用 unique constraint查询来创建唯一的输入,因为我希望将这些重复的条目输入到表中.

mysql sql stored-procedures sql-delete

3
推荐指数
1
解决办法
1030
查看次数

使用Laravel查询构建器和LEFT JOIN删除行

如何在一个查询(带有左联接)中从多个表中删除行。查询:

DELETE `deadline`, `job` FROM `deadline` LEFT JOIN `job` ....
Run Code Online (Sandbox Code Playgroud)

所以,我这样尝试:

DB::table('deadline', 'job')
    ->leftJoin('job', 'deadline.id', '=', 'job.deadline_id')
    ->where('deadline.id', $id)
    ->delete();
Run Code Online (Sandbox Code Playgroud)

似乎Laravel不支持从具有左联接的多个表中删除。

有受支持的方法或解决方法吗?

php mysql left-join sql-delete laravel-4

3
推荐指数
1
解决办法
8430
查看次数

PDO查询始终返回1或true

我想在删除之前检查一行是否存在.我的表中的行不存在但总是返回1:

$orders = $this->db->prepare("SELECT * FROM orders WHERE id=? AND user=?"); 
            $check = $orders->execute(array($message,$this->model->checkapi($data,$message)));
            echo $check;
            if($check){
            $deleteorder = $this->db->prepare("DELETE FROM orders WHERE id=? AND user=?"); 
            $deleteorder->execute(array($message,$this->model->checkapi($data,$message)));
                array_push($result, array('success' => true,
                                          'deleted' => $message));
                echo json_encode(array("result" => $result));
                die();
            }else{
Run Code Online (Sandbox Code Playgroud)

$this->model->checkapi($data,$message) 返回fakeusername和id/$ message返回136

我检查了我的数据库,ID存在,但不是id和用户名.

我发送id:136和用户名:fakeuser

在数据库中,该行以id:136和username:demo存在.

我不确定为什么它因为不匹配而不应该选择行时返回1.

在此输入图像描述

php sql select pdo sql-delete

3
推荐指数
1
解决办法
1510
查看次数

在SQL中复制行输出的值太多

我创建了一个查询来删除表中的重复行.我试图这样做,但输出是"太多的价值"

DELETE FROM Employeetest 
WHERE employeeid IN (SELECT 
                         employeetest.*, 
                         ROW_NUMBER() OVER (PARTITION BY employeeid ORDER BY employeeid) AS rownumber 
                     FROM
                         employeetest 
                     HAVING
                         (rownumber > 1)); 
Run Code Online (Sandbox Code Playgroud)

我也做了

SELECT
    employeetest.*, 
    ROW_NUMBER() OVER (PARTITION BY employeeid ORDER BY employeeid) AS rownumber 
FROM
    employeetest
Run Code Online (Sandbox Code Playgroud)

然后

DELETE * FROM employeetest;
Run Code Online (Sandbox Code Playgroud)

它不起作用

sql oracle sql-delete

3
推荐指数
1
解决办法
78
查看次数