Mar
6
2019
SELECT type as result FROM tbl_users
Result:
admin
admin
user
admin
editor
SELECT GROUP_CONCAT(type) as result FROM tbl_users
Result:
admin,admin,user,admin,editor
https://database.guide/how-to-return-query-results-as-a-comma-separated-list-in-mysql/
MSSQL equivalent is STRING_AGG()
no comments | posted in MYSQL Database Development
Sep
1
2017
Problem: zanima nas popis proizvoda koji su dodani u košaricu unutar 24 sata. Dakle, ne 1 dan jer je između 23:00 i 01:00 drugi dan razlika od jednog dana, ali od samo dva sata.
Rješenje:
SELECT
TIMESTAMPDIFF (HOUR, tbl_kosarica.vrijeme_dodavanja, NOW()) as difference
FROM
tbl_kosarica
WHERE TIMESTAMPDIFF(HOUR, tbl_kosarica.vrijeme_dodavanja, NOW()) < 24
no comments | posted in MYSQL Database Development
Dec
5
2016
Problem: treba selektirati iz MySql baze vrijeme i godinu iz polja datum radi uspoređivanja. Npr. za datum 28.12.2016.
Rješenje:
EXTRACT(YEAR_MONTH FROM datum)
Query vraća kao rezultat izraz: 201612
no comments | posted in MYSQL Database Development
Jul
7
2015
Problem:
želimo datetime polju promijeniti samo vrijeme, a da nam datum ostane isti
Rješenje:
UPDATE tbl_tablica SET datum = CONCAT(date(datum)," ", CURTIME())
WHERE id=123
ovo unesenom datumu pridodaje trenutno vrijeme
no comments | posted in MYSQL Database Development
Apr
29
2015
Problem:
Trebamo spojiti podatke iz dvije tablice na način da dobijemo sve podatke iz obje tablice s time da se podaci koji se poklapaju ne ponavljaju nego joinaju.
Tu bi poslužio nekakav FULL OUTER JOIN.
Kad bi ga bilo.
S obzirom da ga nema:
Rješenje:
SELECT * FROM tbl_a
LEFT JOIN tbl_b ON tbl_a.id = tbl_b.id
UNION
SELECT * FROM tbl_a
RIGHT JOIN tbl_b ON tbl_a.id = tbl_b.id
no comments | posted in MYSQL Database Development
Oct
13
2014
Problem:
trebamo dobiti naziv za mjesec iz nekog datuma
Rješenje:
MONTHNAME(STR_TO_DATE(MONTH(datum_i_vrijeme), ‘%m’))
Međutim, to nam daje engleske nazive mjeseci. Da bi dobili hrvatske moramo postaviti sljedeći upit na bazu:
SET lc_time_names = ‘hr_HR’
no comments | posted in MYSQL Database Development
Sep
18
2014
Problem: trebamo prilikom ispisa spojiti dva polje (ime=’Pero’, prezime=’Perić’) u jedno (osoba=’Pero Perić’)
npr.
SELECT CONCAT(ime,' ',prezime) AS osoba FROM tbl_osobe
U slučaju da je ime ili prezime null i osoba će biti null, a ne Pero ili Perić kako bismo htjeli.
Rješenje: upotreba kunkcije CONCAT_WS
SELECT CONCAT_WS(' ',ime,prezime) AS osoba FROM tbl_osobe
Ako je ime null rezultat je Perić, a ako je prezime null rezultat je Pero…
no comments | posted in MYSQL Database Development
Apr
8
2014
Problem:
Selektirati iz baze sve redove gdje je datum stariji od npr. 30 dana
Rješenje:
SELECT FROM tablica WHERE datum < DATE_SUB(NOW(), INTERVAL 30 DAY);
no comments | posted in MYSQL Database Development
Mar
3
2014
Problem: Selektirati iz tablice tbl_a sve gdje vrijednost tbl_a.x nije jednaka vrijednosti tbl_b.x
Rješenje:
SELECT * FROM tbl_a WHERE x NOT IN (SELECT x FROM tbl_b)
Međutim što ako nam treba više od jednog podatka podudaranja:
Problem: Selektirati iz tablice tbl_a sve gdje vrijednost tbl_a.x nije jednaka vrijednosti tbl_b.x, vrijednost tbl_a.y nije jednaka vrijednosti tbl_b.y itd.
Rješenje:
SELECT * FROM tbl_a WHERE NOT EXISTS (SELECT * FROM tbl_b WHERE tbl_a.x=tbl_b.x AND tbl_a.y=tbl_b.y itd.)
no comments | posted in MYSQL Database Development
Feb
12
2014
Problem:
Updejtati polje X tablice A vrijednošću polja Y tablice B tamo gdje je podatak W tablice A jednak podatku Z tablice B
Rješenje:
UPDATE tbl_A INNER JOIN tbl_B ON tbl_A.x = tbl_B.y SET tbl_A.w = tbl_B.z
MSSQL verzija: MSSQL: Update INNER JOIN
no comments | posted in MYSQL Database Development