如何构造一个mySQL查询以基于最大值删除行。
我试过了
WHERE jobPositonId = max(jobPostionId)
但是有错误?
采用:
DELETE FROM TABLE t1
JOIN (SELECT MAX(jobPositonId) AS max_id FROM TABLE) t2
WHERE t1.jobPositonId = t2.max_id
请注意,如果存在重复,则将删除 所有 具有该jobPositonId
值的行。
关于1093错误的愚蠢之处在于,您可以通过在自引用之间放置一个子查询来解决它:
DELETE FROM TABLE
WHERE jobPositonId = (SELECT x.id
FROM (SELECT MAX(t.jobPostionId) AS id
FROM TABLE t) x)
MySQL仅在使用UPDATE
&DELETE
语句时检查是否存在正在更新的同一表的一级子查询。这就是为什么将其放在第二级(或更深层)的子查询替代项中的原因。但这只是检查子查询-
JOIN语法在逻辑上是等效的,但不会触发错误。
问题内容: 有没有一种方法可以根据行中包含的值删除行?例如,我有一个表,其中的值在包含URL值的一列中,例如, /uk/quitclock/om2.asp /uk/quitclock/om666.wav 在这里,我需要删除后缀为WAV,GIF或JPEG的行。我怎么做?如果不可能,那么excel中是否有任何公式可以帮助我做到这一点? 问题答案: 在数据库上尝试
问题内容: 我有下表,现在我需要删除具有重复的“ refID”但至少有一行与该引用对应的行,即我需要删除第4行和第5行。请对此提供帮助 问题答案: 这类似于Gordon Linoff的查询,但没有子查询: 这将使用内部联接仅删除其中另一行具有相同的refID但具有较低ID的行。 避免子查询的好处是能够利用索引进行搜索。该查询在refID + ID上使用多列索引时应表现良好。
问题内容: 这是我正在谈论的简化示例: 为了这个问题,假设每个学生至少记录了一个考试结果。 您将如何选择每个学生以及他们的最高分数? 编辑 :…和该记录中的其他字段? 预期产量: 欢迎使用所有类型的DBMS进行回答。 问题答案: 回答已编辑的问题(即也获取关联的列)。 在Sql Server 2005+中,最好的方法是将等级/窗口函数与CTE结合使用,如下所示: 对于符合ANSI-SQL的解决方案
我有一个工作表,我需要根据单元格值删除行。。 要检查的单元格位于A列中。。 如果单元格包含“-”。。删除行 我找不到这样做的方法...我打开一个工作簿,将所有内容复制到另一个工作簿,然后删除整个行和列,但必须根据单元格值删除特定的行。 这里需要帮助。 更新 我拥有的数据样本
问题内容: 我有一个带有Year列的表,并且此列不应有重复的值。因此,我最终得到一张仅具有2007年记录的表格。 那么,如何删除具有重复年份值的行呢? 谢谢 问题答案: 我认为您可以尝试使用IGNORE添加唯一索引: MySQL应该以类似以下内容的方式进行响应: 当然,您可以将其留给MySQL来决定删除哪些行。 编辑: 这适用于任意多的列: 查看有关CREATE INDEX的MySQL文档。一个常
我有这样一个数据帧: 我如何摆脱第四行,因为它有sq_resid的最大值?注意:最大值将从一个数据集更改到另一个数据集,所以仅仅删除第4行是不够的。 我已经尝试了一些方法,比如我可以删除像下面这样留下数据帧的最大值,但是无法删除整行。