mysql select/order pitane

7 отговора 229 прегледа
#1

mysql select/order pitane

privet.

kak moga da podredia/dobavia?/ pole v koeto da se otchita nomer-a na result-a?

SELECT name, addr, timestamp FROM table ORDER BY timestamp DESC LIMIT 5

? | name | addr | timestamp

1 | name.....addr....timestamp
2 | name.....addr....timestamp
3 | ...........

tova pole triabva da e nezaviseshto - t.e da niama
obshto sys samoto insertvane;
(niakakyv auto_increment int ne vyrshi rabota)

Отговор
в отговор на dixie #2

Re: mysql select/order pitane

Защо auto_increment не ти върши работа?

"Да живееш - значи да се променяш." - Анатол Франс
Отговор
в отговор на Dakota #3

Re: mysql select/order pitane

neznam dali go pravia po pravilnia nachin, no ideiata e slednata:

kogato pisah message board, triabavshe da ima 10 threads per page, vsichko beshe mn. lesno -
...
$next = intval($_GET['next']);
SELECT pole1, pole2, pole3 FROM table WHERE id <= $next ORDER BY id DESC LIMIT 10;
...
neshto podobno...

t.e vsichko se kontrolirashe s incremental id-ta i novite postove biaha s po-golemi id-ta, syotvetno imashe niakakyv order.

sega tova koeto prtavia e search engine i e gotov s izkluchenie na next 20 chastta. tuk ot incremental id-ta niama smisyl tyi kato search hitovete ne spazvat niakakva posledovatelnost i shte stane goliama kasha ako pochna da gi polzvam.

v momenta vijdam neshtata kato niakakyv dopulnitelen column,
koito da nosi nomer-a na vseki selectnat red, matchnat ot
search-a -

1...match1
2...match2
3...match3

i t.n...ta idei za next?

Отговор
в отговор на dixie #4

Re: mysql select/order pitane

ami zashto ne izpolzvash LIMIT v select zaiavkata?

Отговор
в отговор на dixie #5

Re: mysql select/order pitane

Пак нищо не разбрах...за какво са ти изобщо тези номера, всичко можеш да го направиш с LIMIT.

"Да живееш - значи да се променяш." - Анатол Франс
Отговор
в отговор на dixie #6

Re: mysql select/order pitane

Moga da ti predloja slednata ideia, no neznam dali shte ti svarshi rabota:
1. pusni si edna kolona, primerno 'itemid', koiato da e auto_increment, t.e. na vseki post na nov zapis da priema novo id s edno po-goliamo ot predhodnoto.
2. Sled kato pusnesh tarseneto i izvedesh paravata stranica s resultatite, ot posledniat resultat vzemi stroinosta na tova pole - 'itemid' i si ia pusni v zaivkata za tarsene na sledvashata stranica.
3. Togava, kogato natishnesh NEXT shte napravish slednoto
SELECT pole1,pole2,pole3 .... FROM table WHERE itemid>'$itemid', t.e. shte zapochnesh pretarsvane v tablicata za novi savpadenia ot posledniata nameren element .... (poneje poleto itemid ti e auto_increment)

Natiavam se tova da ti svarshi rabota

Отговор
в отговор на SpeedY #7

Re: mysql select/order pitane

ami ako se porazrovi6 v dokumentaciata na mysql
6te ustanovi6 4e zaiavkata s klauza limit moje da priema 2 parametyra
primerno :
........... limit 5,5
koeot ozna4ava pokaji 5 zapisa zapo4vaiki ot 5-ti red...
predpolagam 4e za tova pita6 :)
krasimir

Отговор
в отговор на dixie #8

Re: mysql select/order pitane

mysql> create table test (a int, b int);
Query OK, 0 rows affected (0.00 sec)

inseti razni....

mysql> select * from test;
+------+------+
| a | b |
+------+------+
| 5 | 6 |
| 6 | 7 |
| 100 | 102 |
| 1 | 2 |
+------+------+
4 rows in set (0.00 sec)

mysql> set @a=0;
Query OK, 0 rows affected (0.00 sec)

mysql> select @a:=@a+1, a, b from test;
+----------+------+------+
| @a:=@a+1 | a | b |
+----------+------+------+
| 1 | 5 | 6 |
| 2 | 6 | 7 |
| 3 | 100 | 102 |
| 4 | 1 | 2 |
+----------+------+------+
4 rows in set (0.00 sec)


Tova li iskashe....

There are only 10 types of people in this world: those who understand binary and those who don't
Отговор