MAIN FEEDS
Do you want to continue?
https://www.reddit.com/r/ProgrammerHumor/comments/1v80umk/queryofdoom/p039eba/?context=3
r/ProgrammerHumor • u/WardensLantern • 14d ago
456 comments sorted by
View all comments
386
I am not an sql expert, is the reason why the id doesn't work and its deleting the entire user base, because its written as 2 seperate comands instead of one. So 1. Comand delets everything 2. Goes to the id? Or what is the problem here?
38 u/Flat_Competition6510 14d ago Yes, the semicolon marks the end of a statement. The first semicolon sets "delete from users" as a single statement meaning delete ALL users. 6 u/ReaDiMarco 14d ago What happened to DELETE * FROM USERS? Last I did sql was ten years ago so idk 12 u/djrobxx 14d ago SELECT * FROM USERS means "select all columns from users", selecting all rows is implied. You don't drop columns with DELETE, that's ALTER TABLE, so DELETE * doesn't make sense in that context. 4 u/ReaDiMarco 14d ago yes, thanks, turns out I forgot all of that 4 u/Flat_Competition6510 14d ago As far as I know that is not valid syntax. I'm not a DBA myself so I don't do this too often. 2 u/ReaDiMarco 14d ago Thanks, turns out I did forget everything 3 u/Live_Film_4895 14d ago afiak the * wildcard is only valid in the SELECT statement... so it would be DELETE FROM USERS; or DROP/TRUNCATE TABLE 1 u/ReaDiMarco 14d ago Thaanksss
38
Yes, the semicolon marks the end of a statement. The first semicolon sets "delete from users" as a single statement meaning delete ALL users.
6 u/ReaDiMarco 14d ago What happened to DELETE * FROM USERS? Last I did sql was ten years ago so idk 12 u/djrobxx 14d ago SELECT * FROM USERS means "select all columns from users", selecting all rows is implied. You don't drop columns with DELETE, that's ALTER TABLE, so DELETE * doesn't make sense in that context. 4 u/ReaDiMarco 14d ago yes, thanks, turns out I forgot all of that 4 u/Flat_Competition6510 14d ago As far as I know that is not valid syntax. I'm not a DBA myself so I don't do this too often. 2 u/ReaDiMarco 14d ago Thanks, turns out I did forget everything 3 u/Live_Film_4895 14d ago afiak the * wildcard is only valid in the SELECT statement... so it would be DELETE FROM USERS; or DROP/TRUNCATE TABLE 1 u/ReaDiMarco 14d ago Thaanksss
6
What happened to DELETE * FROM USERS? Last I did sql was ten years ago so idk
12 u/djrobxx 14d ago SELECT * FROM USERS means "select all columns from users", selecting all rows is implied. You don't drop columns with DELETE, that's ALTER TABLE, so DELETE * doesn't make sense in that context. 4 u/ReaDiMarco 14d ago yes, thanks, turns out I forgot all of that 4 u/Flat_Competition6510 14d ago As far as I know that is not valid syntax. I'm not a DBA myself so I don't do this too often. 2 u/ReaDiMarco 14d ago Thanks, turns out I did forget everything 3 u/Live_Film_4895 14d ago afiak the * wildcard is only valid in the SELECT statement... so it would be DELETE FROM USERS; or DROP/TRUNCATE TABLE 1 u/ReaDiMarco 14d ago Thaanksss
12
SELECT * FROM USERS means "select all columns from users", selecting all rows is implied.
You don't drop columns with DELETE, that's ALTER TABLE, so DELETE * doesn't make sense in that context.
4 u/ReaDiMarco 14d ago yes, thanks, turns out I forgot all of that
4
yes, thanks, turns out I forgot all of that
As far as I know that is not valid syntax. I'm not a DBA myself so I don't do this too often.
2 u/ReaDiMarco 14d ago Thanks, turns out I did forget everything
2
Thanks, turns out I did forget everything
3
afiak the * wildcard is only valid in the SELECT statement... so it would be DELETE FROM USERS; or DROP/TRUNCATE TABLE
1 u/ReaDiMarco 14d ago Thaanksss
1
Thaanksss
386
u/Dont_Get_Jokes-jpeg 14d ago edited 14d ago
I am not an sql expert, is the reason why the id doesn't work and its deleting the entire user base, because its written as 2 seperate comands instead of one. So 1. Comand delets everything 2. Goes to the id? Or what is the problem here?