Autor | Zpráva | ||
---|---|---|---|
MilanJ Profil |
#1 · Zasláno: 3. 3. 2006, 10:55:08
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 |
#2 · Zasláno: 3. 3. 2006, 13:28:29
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 |
#3 · Zasláno: 3. 3. 2006, 13:33:06
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 |
#4 · Zasláno: 3. 3. 2006, 13:43:49
MilanJ
Tak nastav primární klíč na ty dvě pole. |
||
llook Profil |
#5 · Zasláno: 3. 3. 2006, 13:44:02
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 |
#6 · Zasláno: 3. 3. 2006, 13:52:29
Díky moc.;-)
|
||
fimmos Profil |
#7 · Zasláno: 3. 3. 2006, 17:07:21
Není lepší použít typ DATE?
|
||
peta Profil * |
#8 · Zasláno: 3. 3. 2006, 19:22:38
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 |
#9 · Zasláno: 3. 3. 2006, 19:58:49
peta
To datum bych naformátoval už v SQL. |
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0