ďťż
 
[MySQL] =?ISO-8859-2?Q?Odwr=F3cenie_domy=B6lnego_order_by=2C?==?ISO-8859-2?Q?_ale_bez_parametru=2E?= ďťż
 
[MySQL] =?ISO-8859-2?Q?Odwr=F3cenie_domy=B6lnego_order_by=2C?==?ISO-8859-2?Q?_ale_bez_parametru=2E?=
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

[MySQL] =?ISO-8859-2?Q?Odwr=F3cenie_domy=B6lnego_order_by=2C?==?ISO-8859-2?Q?_ale_bez_parametru=2E?=



sawic - 12-01-2007 00:29
[MySQL] =?ISO-8859-2?Q?Odwr=F3cenie_domy=B6lnego_order_by=2C?==?ISO-8859-2?Q?_ale_bez_parametru=2E?=
  Witam.
Zapisuję do bazy sporo danych w krótkim czasie.
Gdy zrobię
select * from table
To kolejność wypisania danych jest dokładnie taka jaka by mnie
interesowała, jednakże w odwróconej kolejności. Czyli otrzymuję
kolejność odwrotną do wpisywania rekordów.

Nie chciałby dodawać dodatkowych parametrów, ustalających kolejność.
Czy dało by się zrobić coś aby odwrócić domyślną kolejność sortowania ?
Coś ala:
select * from table order by desc

Pozdrawiam





lost - 12-01-2007 00:29

  > Coś ala:
> select * from table order by desc
>
a próbowałeś takiej komendy?
a przeczytałeś może ten fragment dokumentacji dotyczący komendy select ?

jak juz zdecydujesz się spróbować to użyj raczej
select * from tabela order by kolumna desc

--




sawic - 12-01-2007 00:29

  lost napisał(a):
>> Coś ala:
>> select * from table order by desc
>>
> a próbowałeś takiej komendy?
> a przeczytałeś może ten fragment dokumentacji dotyczący komendy select ?
>
> jak juz zdecydujesz się spróbować to użyj raczej
> select * from tabela order by kolumna desc

A nie przeczytałeś co pisałem ?
Oczywiście, że tego próbowałem i wiem, że nie działa.
order by kolumna desc - też nie działa(tak jak tego oczekuję), a to
dlatego, że po tej kolumnie posortuje desc a pozniej i tak w kolejnosci
odwrotnej do dodawania rekordów.

Jak się nie da żadnego order by to MySQL wyświetli rekordy w kolejności
odwrotnej do dodawania. Mnie interesuje aby nie skupiać się na nakazaniu
sortowania wg jakiejś konkretnej kolumny, tylko aby odwrócić kolejność
tego domyślnego sortowania. MyQSL de facto domyślnie sortuje wg:
`ostatnia aktualizacja rekordu` desc, a ja chcę aby to bylo asc ;)

Mam nadzieję, że tym razem wytłumaczyłem jaśniej.

pozdrawiam




Piotr Keplicz - 12-01-2007 00:29

  sawic:
> Jak się nie da żadnego order by to MySQL wyświetli rekordy w kolejności
> odwrotnej do dodawania. Mnie interesuje aby nie skupiać się na nakazaniu
> sortowania wg jakiejś konkretnej kolumny, tylko aby odwrócić kolejność
> tego domyślnego sortowania.

Nie ma czegoś takiego, jak domyślne sortowanie. W pewnych przypadkach może
się wydawać, że to kolejność dodawania rekordów, ale to błędne założenie.

> MyQSL de facto domyślnie sortuje wg:
> `ostatnia aktualizacja rekordu` desc, a ja chcę aby to bylo asc ;)

To dodaj kolumnę typu TIMESTAMP, która (o ile nie poda się wartości jawnie)
będzie przechowywać datę ostatniej aktualizacji i w/g niej sortuj.

..pk.





lost - 12-01-2007 00:29

  >
> Mam nadzieję, że tym razem wytłumaczyłem jaśniej.
>
nie możesz zakładać jakiegokolwiek sortowania bez użycia
jawnie order by pomimo pozornego sortowania wyników
w zapytaniu bez order by

i po drugie zapis w bazie jest w porządku nieznanym, sortujesz jedynie
wyniki zapytania ale nie zmieniasz porządku w zapisanych tabelach
chyba że przepisujesz tabelę do innej tabeli w jakimś porządku
pozdrawiam

--




Maciek Dobrzanski - 12-01-2007 00:29

  "sawic" <sawicc@wytnij.to.gmail.com> wrote in message
news:eo69lh$5u9$1@news.onet.pl...

> dlatego, że po tej kolumnie posortuje desc a pozniej i tak w kolejnosci
> odwrotnej do dodawania rekordów.

Z definicji nie istnieje taka kolejność.

> Jak się nie da żadnego order by to MySQL wyświetli rekordy w kolejności
> odwrotnej do dodawania.

Nie prawda:

mysql> CREATE TABLE t1 (a TINYINT NOT NULL, b CHAR(5) NOT NULL PRIMARY KEY);
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO t1 VALUES (1, 'ALA');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO t1 VALUES (2, 'MA');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO t1 VALUES (3, 'KOTA');
Query OK, 1 row affected (0.00 sec)

mysql> SELECT * FROM t1;
+---+------+
| a | b |
+---+------+
| 1 | ALA |
| 3 | KOTA |
| 2 | MA |
+---+------+
3 rows in set (0.00 sec)

> tego domyślnego sortowania. MyQSL de facto domyślnie sortuje wg: `ostatnia
> aktualizacja rekordu` desc, a ja chcę aby to bylo asc ;)

Utwórz kolumnę data_aktualizacji typu TIMESTAMP z atrybutem ON UPDATE
CURRENT_TIMESTAMP i sortuj wg. niej.

Maciek




=?ISO-8859-2?Q?Micha=B3?= Kuratczyk - 13-01-2007 00:00

  sawic wrote:
> Zapisuję do bazy sporo danych w krótkim czasie.
> Gdy zrobię
> select * from table
> To kolejność wypisania danych jest dokładnie taka jaka by mnie
> interesowała, jednakże w odwróconej kolejności. Czyli otrzymuję
> kolejność odwrotną do wpisywania rekordów.
>
> Nie chciałby dodawać dodatkowych parametrów, ustalających kolejność.
> Czy dało by się zrobić coś aby odwrócić domyślną kolejność sortowania ?
Dopóki nie podasz ORDER BY, to kolejność jest PRZYPADKOWA, a nie domyślna.
Jeśli chcesz mieć posortowane dane, to musisz podać ORDER BY. (w przypadku
MySQLa sortowanie gwarantuje też GROUP BY, ale polecam i tak dopisać ORDER
BY, na wypadek gdybyś kiedyś chciał to zapytanie odpalić na innej bazie).

--
Michał Kuratczyk




sawic - 13-01-2007 00:01

  Maciek Dobrzanski napisał(a):
> Nie prawda:

Wygląda na to, że masz rację.

> Utwórz kolumnę data_aktualizacji typu TIMESTAMP z atrybutem ON UPDATE
> CURRENT_TIMESTAMP i sortuj wg. niej.

Nie da rady. Musiałbym do timestamp zapisywać mikrosekundy.
Wiele rekordów jest wpisywane na raz, i dokładność do 1 sekundy jest o
wiele za mała.
Chciałem dodać pole typu int i wpisywać: date_format(now(), '%i%s%f')
aby tego później użyć do sortowania, ale mikrosekundy są zawsze na 0.
Wobec konieczności szybkiego rozwiązania problemu i braku innego znanego
mi rozwiązania dodałem se w php zmienną, którą inkrementuję. Chciałem po
prostu tego uniknąć.

A te mikrosekundy jak wyciągnąć z now() to nie mam pojęcia. Chyba się
nie da.

Pozdrawiam




=?ISO-8859-2?Q?S=B3awomir_Szysz=B3o?= - 14-01-2007 00:01
=?ISO-8859-2?Q?Re:_[MySQL]_Odwr=F3cenie_domy=B6lnego_order_by,_ale_bez_pa?== ?ISO-8859-2?Q?rametru.?=
  Dnia Fri, 12 Jan 2007 16:44:31 +0100, sawic <sawicc@wytnij.to.gmail.com>
wklepał(-a):

>Nie da rady. Musiałbym do timestamp zapisywać mikrosekundy.
>Wiele rekordów jest wpisywane na raz, i dokładność do 1 sekundy jest o
>wiele za mała.

To dodaj pole autoincrement i po nim sortuj.
--
Sławomir Szyszło mailto:slaszysz@poczta.onet.pl
Primus inter FAQires & Grand Inquisitor no.0 of pl.comp.bazy-danych
FAQ pl.comp.bazy-danych http://www.dbf.pl/faq/
Archiwum http://groups.google.com/groups?grou...mp.bazy-danych
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Gdzie MySQL 4.1, a gdzie 5.0? [MS SQL] "set names" (mySQL) w MS SQL oracle -> oracle lub oracle -> mysql replikacja - programy [mysql 4.0] SELECT t1.id, t1.foo FROM t1 oraz COUNT t2 w jednym zapytaniu. [MySQL] Zwrot tego, co pasuje i nie pasuje :-/ [pgsql] Dostosowanie składni MySQL 5.0 -> PGSQL 8.1 [mysql] galeria zdjec - numerowanie zdjec [MySQL] Zapytanie z pliku , wynik do pliku [mysql] CONCAT agregujący, ale nie GROUP_CONCAT() mysql data 0000-00-00 na koniec
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • radioaktywni.htw.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com