Hogy kell ezt lekérdezni MYSQL-ben?
Sziasztok!
Le szeretném kérdezni az utolsó 5 napban regisztrált felhasználók számát. A felhasználók táblában van egy created datetime mező, amiben benne van mikor regelt. Nem vagyok jó MYSQL-ből és nem tudok angolul sem, tudnátok segíteni?
gondolom nem szórakozásból csinálsz sql lekérdezéseket, vagyis vagy a suliban, vagy a munkahelyen sql-t kell használnod. ergo jobban járnál ha előbb utóbb megtanulnád az sql-t és megtanulnám angolul.
egyébként kb így kéne kinéznie: SELECT [név mező] FROM [táblanév] WHERE [dátum mező]>=([aktuális dátumot lekérő függvény]-5)
Először: rendezed valami szerint.
Másodszor: a rendezett adatok közül kiiratod az utolsó valamennyit.
Nálad a célszerű megoldás szerintem: fordított sorrendben rendezed, majd a legelső ötöt veszed.. pl:
SELECT * FROM melyiktabla ORDER BY amiszerintrendezed DESC LIMIT 5
A limit: amennyi rekord kell
melyiktabla: táblád neve
amiszerintrendezed: célszerűen a regisztráció dátumát tartalmazó adat
valamilyen szinten értek hozzá, de ilyesmivel még nem találkoztam. angolul is tudok kicsit, de a mysql angol leírása nekem már sok. egy saját honlapot készítek, és ott jött elő.
ilyesmivel próbálkoztam:
SELECT count(id) FROM users
WHERE (NOW()-created)/24*3600 < 5
De nem működik. Szerintem mással kellene osztanom, de nem tudom mennyivel.
Az utolsó X napban regelők száma kell nekem, nem az utolsó X darab.
Azért köszi a segítséget!
ezt is próbáltam, de nem működik:
WHERE [dátum mező]>=([aktuális dátumot lekérő függvény]-5)
jaj, bocs, megint nem tudok olvasni... :D
szóval, csak tipp, de: úgy nem próbáltad, hogy nem osztogatsz semmit, hanem azt vizsgálod, hogy a
NOW-created < 432000
datetime, ilyen a format: 2011-08-06 13:22:25
a gond az,hogy ha a created = '2011-08-06 13:22:25', akkor a created+0=20110806132225 , tehát a konverzió miatt ez a trükközés nem jó. nem lehet valahogy másodpercekké átkonvertálni a datetime típust az sql lekérdezésben? az lenne a kulcs, de nem ismerem a függvényt.
SELECT * FROM adatok WHERE UNIX_TIMESTAMP(created) + 432000 > UNIX_TIMESTAMP(NOW())
vagy DATEADD() fv. használata
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!