Query for bepaalde update
Ik heb een users table. Iedere user heeft credits. Nu wil ik iedere user 10 credits geven. Hoe kan ik dit met een MySQL command doen?
In het eerste geval heeft iedereen er 10, in het tweede geval heeft iedereen er 10 meer.
Sorry voor mijn onduidelijkheid. Erbij geven. Dus huidig aantal +10
UPDATE users SET credits = credits + 10
(die waarschuwing wordt gegeven omdat je mogelijk maar bij 1 user iets wilde aanpassen. En je tool wil je behoeden voor een dergelijk niet terug te draaien fout. Een fout die ernstiger is als je bijvoorbeeld 1 user admin wilde maken of 1 user wilde uitschakelen.)
WHERE 1=1 is altijd true. De tool is tevreden ivm "je bent geen where vergeten" en alle records vallen onder dit criterium.
Mysql zou ook werken met "WHERE 1", maar verschillende andere databases vinden dat te kort en vereisen iets waar echt een boolean uitkomt: een vergelijking
Gewijzigd op 25/03/2020 11:43:38 door Ivo P
Ivo P op 25/03/2020 11:41:32:
Ben benieuwd, ben het nog nooit tegengekomen, dus verschillende tools?En omdat verschillende database-beheertools dan een waarschuwing geven "gevaarlijke query zonder where":
Heb je voorbeelden van tools die dat doen??
"Run usafe queryies without a WHERE clause?"
"Your query contains UPDATEs and/or DELETEs without a WHERE clause. Please confirm that you know what you're doing"
Ik dacht ook Navicat, maar die doet dat na test toch niet blijkbaar.
Wel een voor Oracle ben alleen even kwijt hoe die ook weer heette.
Gewijzigd op 25/03/2020 12:24:53 door Ivo P
Meestal gebruik ik HeidiSQL of voor SQL-updatescripts de CLI.
Gewijzigd op 25/03/2020 13:37:17 door - Ariën -
- Ariën - op 25/03/2020 13:35:01:
Ik dacht dat phpMyAdmin ook een bevestiging vraagt. Maar ik gebruik die zut bijna nooit meer. Tenzij ik online even snel wat wil toevoegen waar mijn CMS beheerstools tekort in schieten.
Meestal gebruik ik HeidiSQL of voor SQL-updatescripts de CLI.
Meestal gebruik ik HeidiSQL of voor SQL-updatescripts de CLI.
De meeste shared host providers bieden standaard phpMyAdmin aan.. Dus ja gebruiken doe ik het wel maar het is niet altijd de beste tool idd. Maar een tool gebruiken die niet op dezelfde server staat zit er meestal niet in toch? Of zit ik er dan naast?
Ofwel via een open poort 3306 (ip gefilterd) direct verbinden met MySQL
ofwel via een SSHtunnel verbinden (en dan lijkt het net of mysql op localhost staat, maar staat in feite waar ook ter wereld.
Idem kan dat voor Navicat en elke andere tool.
Als een programma zelf (al dan niet met hulp van een plugin van bijv. PuTTy) niet kan tunnelen, dan kun je altijd nog PuTTy of Kitty een tunnel laten verzorgen.
Op een shared host (je weet wel zo een ding van enkele euro's per jaar) Ivo?
als je maar ssh toegang hebt...
Oke dank je Ivo. Iets om te onthouden :-)