MySQL is perfect voor datum berekeningen. Kijk maar naar de eerdere post voor verjaardagen bijvoorbeeld.
Nu ook een simpele manier om de resultaten terug te krijgen van gister, eergister of morgen.
Read more…
In een content editor zijn er altijd wel bepaalde roles te vinden. Elke user zal zijn functie daarin ook uitvoeren, maar we kunnen er vanuit gaan dat
meerdere users dezelfde content kunnen bewerken. Dan is het handig om te loggen wie wat heeft gedaan.
Ook als het gaat om een soort van revision history bij te houden zullen logs van pas komen. Maar je wilt dit niet zelf gaan bijhouden door omslachtig zelf alles na te kijken
wat er is veranderd. Gelukkig worden we weer verwend door MySQL.
Read more…
Counters die het aantal bezoekers, berichten, etc bijhouden. Altijd heel mooi als dat goed loopt maar als het directe database opdrachten zijn dan zal je webserver
daar iets minder gelukkig mee zijn. Stel je voor dat je iedere seconde een database opdracht moet doen op een steeds maar groeiende tabel. Dit kan redelijk funest
worden voor je performance. Helemaal als je geen InnoDB hebt (er vanuit gaande dat je mysql zou hebben). InnoDB zorgt voor row locking in plaats van table locking.
Hoe kunnen we dan dit efficiënt krijgen?
Read more…
1 in update alle velden een replace uitvoeren. Hier een voorbeeld met een verloren euro teken
Read more…
Situatie: je wilt max 10 results terughebben, maar je hebt er joins voor nodig. Dan zou GROUP_CONCAT een uitkomst kunnen bieden. Deze concatenate de resultaten vanuit de subselect. Je zou ze dan met een andere taal nog moeten parsen, maar het scheelt wel weer extra queries!
Read more…
Als er veel queries worden losgelaten op de database kan de boel traag worden. Hiermee zeg je dat MySQL het later mag invoegen op een moment dat hij het weer wat rustiger heeft .
Let op: SELECT queries kunnen hierdoor in een wachtrij komen te staan!
Als er een batch INSERT DELAYED staat te wachten moeten deze eerst uitgevoerd worden voordat het SELECT statement iets mag.
Het kan dus vertragend werken!
Read more…
Bij het debuggen of vastlopen van zware queries is het soms handig om even de processlist erbij te pakken.
Hierin kan je langlopende queries meteen uitschakelen.
Read more…
Een row kopieren kan makkelijk zijn, maar omdat de meeste rows wel een unique id of primary key hebben krijg
je ook meteen een duplicate entry error. Deze handelt dit meteen af
Read more…
Standaard staat een database op de latin character encoding. Met de laatste webstandaarden is dit niet echt meer compatible maar de tabel updaten gaat vaak ook niet zonder slag of stoot. Hier is een hele simpele oplossing voor. Voer deze query uit voordat je allerlei data gaat ophalen en het komt weer helemaal goed. Vergeet niet je meta tag goed in te stellen
Read more…
Je zal het vaak nodig hebben: systemen waar je moet inloggen en er absoluut niet registreert mag worden met een email adres dat al bestaat. Nu kan je het aantal rijen tellen d.m.v mysql_num_rows maar je kan het mooier en sneller oplossen door de COUNT functie in mysql. De onderstaande query zal nu een alias aanmaken met emailCount. Als je dit bijv in php ophaalt met mysql_fetch_assoc krijg je bijv: $row[ "emailCount"]
Uiteraard nog beter om een UNIQUE veld te maken. Maar het gaat om het voorbeeld
Read more…