I have several tables containing over 20k rows. Is there a quick way to delete all but the first 20 rows in each of the tables?
- Visitors can check out the Forum FAQ by clicking this link. You have to register before you can post: click the REGISTER link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. View our Forum Privacy Policy.
- Want to receive the latest contracting news and advice straight to your inbox? Sign up to the ContractorUK newsletter here. Every sign up will also be entered into a draw to WIN £100 Amazon vouchers!
MySQL Question
Collapse
X
-
-
I'm not a mySQL guru but is there a way to spit out the rownum?
Something like select @rownum:=@rownum+1, ID, ..... from ... where @rownum <=20;
insert that into a temporary table and then
delete from tableA where ID not in (select ID from tmptable)McCoy: "Medical men are trained in logic."
Spock: "Trained? Judging from you, I would have guessed it was trial and error." -
Thanks I'll give that a go.Originally posted by lilelvis2000 View PostI'm not a mySQL guru but is there a way to spit out the rownum?
Something like select @rownum:=@rownum+1, ID, ..... from ... where @rownum <=20;
insert that into a temporary table and then
delete from tableA where ID not in (select ID from tmptable)Comment
-
-
I'm clueless when it comes to sqlOriginally posted by FiveTimes View PostCan you not use the order by limit 20 in the delete statement ?
Comment
-
well this will give you the first 20 rowsOriginally posted by Cliphead View PostI have several tables containing over 20k rows. Is there a quick way to delete all but the first 20 rows in each of the tables?
SELECT tableid FROM {table} ORDER BY {row} asc LIMIT 20
so something like will work
delete from table where tableid not in (
SELECT tableid FROM {table} ORDER BY {row} asc LIMIT 20)merely at clientco for the entertainmentComment
-
Good stuff.McCoy: "Medical men are trained in logic."
Spock: "Trained? Judging from you, I would have guessed it was trial and error."Comment
-
How many tables? Do the tables have an ID column? As other posters have said you can simply delete where ID > 20 so
DELETE from TABLE where ID > 20;Comment
-
dunno mysql but in Oracle you could use the rownum, mysql prob has something similar,Originally posted by Cliphead View PostI'm clueless when it comes to sql
or perhaps SELECT * FROM TABLE WHERE NOT IN (SELECT TOP 20 * FROM TABLE)sufficiently advanced stupidity is indistinguishable from malice - Asimov (sort of)
there is no art in a factory, not even in an art factory - Mixerman
everyone is stupid some of the time - trad.Comment
-
Use phpmyadmin or Mysql Workbench and select/delete with your mouse.Originally posted by Cliphead View PostI have several tables containing over 20k rows. Is there a quick way to delete all but the first 20 rows in each of the tables?Comment
- Home
- News & Features
- First Timers
- IR35 / S660 / BN66
- Employee Benefit Trusts
- Agency Workers Regulations
- MSC Legislation
- Limited Companies
- Dividends
- Umbrella Company
- VAT / Flat Rate VAT
- Job News & Guides
- Money News & Guides
- Guide to Contracts
- Successful Contracting
- Contracting Overseas
- Contractor Calculators
- MVL
- Contractor Expenses
Advertisers

Comment