Kezdőoldal » Számítástechnika » Weblapkészítés » Hogy kell ezt lekérdezni...

Hogy kell ezt lekérdezni MYSQL-ben?

Figyelt kérdés

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?


2011. szept. 17. 12:05
 1/10 Panda Péter ***** válasza:

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)

2011. szept. 17. 12:13
Hasznos számodra ez a válasz?
 2/10 anonim ***** válasza:

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

2011. szept. 17. 12:14
Hasznos számodra ez a válasz?
 3/10 A kérdező kommentje:

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!

2011. szept. 17. 12:25
 4/10 A kérdező kommentje:

ezt is próbáltam, de nem működik:


WHERE [dátum mező]>=([aktuális dátumot lekérő függvény]-5)

2011. szept. 17. 12:28
 5/10 anonim ***** válasza:

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

2011. szept. 17. 12:30
Hasznos számodra ez a válasz?
 6/10 anonim ***** válasza:
meg persze egy egy gyökér kérdés részemről, de ugye az biztos, hogy a tárolt adat megfelelő formában van eltárolva?
2011. szept. 17. 12:31
Hasznos számodra ez a válasz?
 7/10 A kérdező kommentje:

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.

2011. szept. 17. 12:53
 8/10 anonim ***** válasza:
erre szerintem az volna a megoldás, hogy még előtte = az sql tárolás előtt a feldolgozó php-n belül az eltárolandó időt unix-időbélyeggé alakítod, és azt tárolod el eleve. (tudod, az 1970 jan 1 óta eltelt másodpercek számát)
2011. szept. 17. 13:37
Hasznos számodra ez a válasz?
 9/10 anonim ***** válasza:

SELECT * FROM adatok WHERE UNIX_TIMESTAMP(created) + 432000 > UNIX_TIMESTAMP(NOW())


vagy DATEADD() fv. használata

2011. szept. 17. 13:44
Hasznos számodra ez a válasz?
 10/10 anonim ***** válasza:
a mezőnevek a tieiddel behelyettesítve
2011. szept. 17. 13:45
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!