我需要一个查询。 删除
表中除前 N 行之外的所有行。该表只有一列。喜欢,
|friends_name|
==============
| Arunji |
| Roshit |
| Misbahu |
| etc... |
此列也可能包含重复的名称。
包含重复的名字
只有一列。
最佳答案
如果您可以按 friends_name
排序您的记录,并且没有重复项,您可以使用:
DELETE FROM names
WHERE
friends_name NOT IN (
SELECT * FROM (
SELECT friends_name
FROM names
ORDER BY friends_name
LIMIT 10) s
)
请参阅 fiddle here .
或者你可以使用这个:
DELETE FROM names ORDER BY friends_name DESC
LIMIT total_records-10
其中 total_records 是 (SELECT COUNT(*) FROM names)
,但是您必须通过代码来执行此操作,您不能在查询的 LIMIT 子句中输入计数。
关于mysql - 从具有单列的表中删除除前 N 行以外的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17292375/