Autor Zpráva
MilanJ
Profil
Možná hloupej dotaz, ale možná ne nemožná věc.
Mám pole typu VARCHAR, kde je uloženo pořadové číslo+rok, např. 1/2006, 2/2006, atd.

Jde mi o to, jestli jde seřadit tyto položky podle velikosti, aby SQL vyhodnotil, že 25/2006 je větší než 10/2006, nebo že 1/2007 je větší než 152/2006.
llook
Profil
Snad by to nějak šlo, ale přesně ti to nepovím. Nějak jako SELECT *, (samotný rok) AS rok, (pořadové číslo) AS cislo FROM tabulka ORDER BY rok, cislo;
Ale jak získat ten "samotný rok" a "pořadové číslo", to z hlavy nevím, možná nějakými funkcemi pro práci s regulárními výrazy.

Není možné to ukládat do dvou různých polí?
MilanJ
Profil
Asi to tak dopadne...půjde to do dvou různých polí, problém je ale ten, že jde zrovna o pole PRIMARY KEY, pokud ho rozdělím, vím já co se stane? :-)
Hugo
Profil
MilanJ

Tak nastav primární klíč na ty dvě pole.
llook
Profil
Můžeš používat složený klíč:
CREATE TABLE (
rok INT,
cislo INT,
PRIMARY KEY(rok, cislo)
);

U existující struktury nejdřív zrušíš stávající primární klíč (teď nevim jak, možná alter table drop primary key, ale nejsem si tím jistý) a pak vytvoříš nový primární klíč (myslim že alter table add primary key(rok, cislo), ale -"-).
MilanJ
Profil
Díky moc.;-)
fimmos
Profil
Není lepší použít typ DATE?
peta
Profil *
fimmos kazdopadne...
llook
proc nepouzijes klasicky datum?
user_regdate datetime NOT NULL default '0000-00-00 00:00:00',

INSERT ... NOW()
SELECT ORDER BY `user_regdate`
SELECT ... fetch... $datum=date("m/Y",strtotime($row['user_regdate']))
fimmos
Profil
peta
To datum bych naformátoval už v SQL.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0