Goedemorgen,

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?
Wil je elke user 10 credits geven of wil je elke user er 10 credits bij geven?
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

UPDATE users
   SET credits = credits + 10
En omdat verschillende database-beheertools dan een waarschuwing geven "gevaarlijke query zonder where":


UPDATE users
   SET credits = credits + 10 
 WHERE 1 = 1


(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
Ivo P op 25/03/2020 11:41:32

En omdat verschillende database-beheertools dan een waarschuwing geven "gevaarlijke query zonder where":
Ben benieuwd, ben het nog nooit tegengekomen, dus verschillende tools?
Heb je voorbeelden van tools die dat doen??

HeidiSQL bijvoorbeeld.

"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.
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.
- 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.


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?

ik gebruik doorgaans HeidiSQL dat op mijn eigen PC geinstalleerd is.
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.

Reageren