相关疑难解决方法(0)

DELETE语句中的MySQL LIMIT

我为最近遇到的错误整理了一个测试表.它涉及在尝试从MySQL表中删除单个记录时使用LIMIT.

我说的错误是" 你的SQL语法有错误;检查与你的MySQL服务器版本相对应的手册,以便在第1行的'LIMIT 1'附近使用正确的语法 "

我放在一起的表叫做测试 ; 它有3列,id,namecreated.我用几个记录填充了表,然后尝试删除一个.以下是我过去尝试完成此操作的声明.

DELETE t FROM test t WHERE t.name = 'foo' LIMIT 1

如果不使用LIMIT 1,语句执行得很好,但是如果不需要它,我当然不会使用LIMIT.

我完全知道我可以使用另一个语句来成功完成此DELETE.见下文: DELETE FROM test WHERE name = 'foo' LIMIT 1

但是我的问题集中在为什么第一个声明不适用于LIMIT.

所以我的问题是,对于生成此错误的第一个语句,我做错了什么?

mysql limit sql-delete

49
推荐指数
4
解决办法
11万
查看次数

LIMIT和IN/ALL/ANY/SOME子查询出现问题

我有这个问题:

SELECT count(cp.CxID) as intSmokers 
FROM CustPrimarySmoking cp 
JOIN Customer c ON cp.CxID = c.CustomerID 
WHERE 
cp.CxID IN (SELECT CxID FROM CustPrimarySmoking WHERE CxID = cp.CxID LIMIT 1, 9999)
Run Code Online (Sandbox Code Playgroud)

这个想法是计数将基于嵌套查询的结果,该查询检索该客户的所有记录,除了第一条记录.

但是,我得到这个错误,我认为这是非常终端:

1235 - 此版本的MySQL尚不支持'LIMIT&IN/ALL/ANY/SOME子查询'

有谁知道这样做的任何其他方式?

谢谢

mysql sql mysql-error-1235

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

如何从mysql中的表中删除重复的行

我需要从mysql中删除表中的重复记录.所以我有一个表名"employee"字段是empid,empname,empssn

为了获得重复记录我写了一个查询

     SELECT COUNT(empssn), empssn 
       FROM employee 
GROUP BY empssn 
    HAVING COUNT(empssn)>1
Run Code Online (Sandbox Code Playgroud)

现在我想删除重复的记录.因为我有书面查询是.

DELETE FROM employee 
          WHERE (empid, empssn) NOT IN (SELECT MIN(empid), empssn 
                                                           FROM employee 
                                                    GROUP BY empssn);
Run Code Online (Sandbox Code Playgroud)

你可以假设表中的记录是

EmpId  EmpName  EmpSSN
 -------------------------------
 1  Jack      555-55-5555
 2  Joe      555-56-5555
 3  Fred      555-57-5555
 4  Mike      555-58-5555
 5  Cathy      555-59-5555
 6  Lisa      555-70-5555
 7  Jack      555-55-5555
 8  Mike      555-58-5555
 9  Cathy      555-59-5555
10  Lisa      555-70-5555
11  Lisa      555-70-5555
Run Code Online (Sandbox Code Playgroud)

但我有一个mysql错误是

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

mysql phpmyadmin mysql-error-1093

6
推荐指数
1
解决办法
8439
查看次数

#1235 - 此版本的MySQL尚不支持'LIMIT&IN/ALL/ANY/SOME子查询'

我在尝试选择和删除时遇到此问题.你能帮我解决这个问题吗?

SELECT `danyel_site`.`server_week`.* FROM `server_week` WHERE `weekly` = 0 AND `time` NOT IN (SELECT * FROM `server_week` WHERE `weekly` = 0 ORDER BY `time` DESC LIMIT 10)
Run Code Online (Sandbox Code Playgroud)

我也想用delete

DELETE FROM `server_week` WHERE `weekly` = 0 AND `time` NOT IN (SELECT * FROM `server_week` WHERE `weekly` = 0 ORDER BY `time` DESC LIMIT 10)
Run Code Online (Sandbox Code Playgroud)

mysql

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