Tag Archive for sql

MySQL – Easy way to insert rows from one table into a secound

If you are one of the persons there can rip your hair of your head when customers asking you to adding a lot of rows from your MySQL table to another table based on certain requirements.

Then take this little tip possibly helping you to a fun business day
Read more

Hent indhold ud mellem et tids intaval

Til tider er der at man har brug for at kunne hente nået data ud eks. fra et enkle døgn fra en bestemt dato, jeg har en remlig simple løsning til dette som jeg syndes jeg vil dele med jer der ude.

SELECT
    *

FROM
    table1 t1

WHERE
    t1.push_date >= '2009-07-09 00:00:00' AND
    t1.push_date <= '2009-07-09 23:59:59'

Jeg håber i kan bruge dette eks. til nået, og post gerne hvis i har andre måder man via SQL kan hente dette ud, dette er et eks. som jeg har testet i MySQL 5.1

GROUP BY og WITH ROLLUP function

GROUP BY er en funktion som bruges til at gruper en række rows som det formenligt også ligger i navnet GROUP BY, men man kan også lave nogle trisk som spare SQL serveren og dig selv for tid, det kan være hvis du eks. Har en række tal du gerne vil ha lagt sammen i en indkøbs kurve så kan GROUP BY benyttes på denne måde.

SELECT sum( shopAntal ) AS TotalAntal, sum( shopPris * shopAntal ) AS TotalPris FROM shop_barsket WHERE userId = ‘brugerid’ GROUP BY userId;

denne SQL ligge alle vare antal og alle priseren sammen til et enklet row udtræk så du ikke skal til at køre en while løkke for at tælle det hele sammen endnu en gang og der efter beregne din data.

Når man kommer til at tælle tal sammen og faktisk ikke gider at lave 2 SQL udtræk kan man gøre det hele meget simplet, for at slippe for 2 SQL udtræk kan man lave et WITH ROLLUP satament som tæller alle ens int værdier sammen og til sidst laver et ekster row udtræk hvor den har indeholder NULL i de steder som ikke er INT værdier eller er regnet sammen.

SELECT SUM( shopAntal ) AS TotalAntal, sum( shopPris * shopAntal ) AS TotalPris FROM shop_barsket WHERE userId = ‘brugerid’ GROUP BY produktId, userId WITH ROLLUP;

HAVING function

Når der skal trækkes en bestemt mængte data ud efter eget valg i dette tilfælde alle felter der er under en vis værdi kan man benytte HAVING efter WHERE statement eks.

SELECT * FROM test_felt WHERE bindKatId = 2 HAVING underKat < 5;

Du vil her få listet alle rows ud fra test_felt som har bindKatId = 2 hvorefter der er under 5 underkategoriere, HAVING bruges isted for at man skriver

SELECT * FROM test_felt WHERE bindkatId = 2 AND underKat < 5;