Autor | Zpráva | ||
---|---|---|---|
Cojetenkámoš Profil * |
Dobrý den, mám dotaz:
$dotaz = mysql_query("(SELECT * FROM itinerar WHERE id_mista= '$_GET[mapa]' ORDER BY datum)"); jenže v DB mám čísla jako: 10600542 a potřeboval bych porovnat proměnnou mapa jen s jeho posledními třemi čísly. Mohl by mi prosím někdo poradit jak se dá dotaz upravit, aby mi to porovnávalo proměnnou mapa pouze s těmi třemi posleddními číslicemi? Moc děkuji! |
||
AM_ Profil |
#2 · Zasláno: 12. 2. 2010, 16:31:02
$dotaz = mysql_query("SELECT * FROM itinerar WHERE id_mista= '$_GET[mapa]' AND id_mista IN (SELECT id_mista FROM itinerar ORDER BY id_mista DESC LIMIT 3) ORDER BY datum"); Nezkoušel jsem to, ale tohle by mohlo fungovat. |
||
Cojetenkámoš Profil * |
#3 · Zasláno: 12. 2. 2010, 16:37:49
Děkuji za snahu, ale bohužel mi to nic nevypisuje.
|
||
Cojetenkámoš Profil * |
#4 · Zasláno: 12. 2. 2010, 16:46:55
Aha, tak to je asi průšvih? :)
This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery' |
||
Beavis Profil |
#5 · Zasláno: 12. 2. 2010, 17:27:07
Cojetenkámoš:
Asi neaktuální verze MySQL. |
||
Cojetenkámoš Profil * |
#6 · Zasláno: 12. 2. 2010, 23:57:59
To ano, jenže to se dá na hostingu řešit dost obtížně. :(
|
||
Alphard Profil |
#7 · Zasláno: 13. 2. 2010, 00:06:04
Cojetenkámoš:
Není mi jasné zadání, ale pochopil jsem to jinak než AM. „s jeho posledními třemi čísly“ „s těmi třemi posleddními číslicemi“ Chcete porovnávat poslední tři čísla v tabulce (např. 10600542, 10600742, 10600142), nebo poslední tři číslice (tj. 542)? Jestli to druhé, tak ten poddotaz nebude potřeba. A jestli to první, tak to prostě uděláte dvěma dotazy, první vytáhne ty čísla a pak se dosadí do druhého. |
||
Cojetenkámoš Profil * |
#8 · Zasláno: 13. 2. 2010, 00:13:46
Dobrý den, jde mi o poslední tři číslice, (tj. 542). Takže ten poddotaz není vůbec třeba? A jak by tedy vypadal select? Moc děkuji za rady.
|
||
Alphard Profil |
#9 · Zasláno: 13. 2. 2010, 00:24:04
$dotaz = mysql_query("(SELECT * FROM itinerar WHERE SUBSTRING(id_mista, -3)= '$_GET[mapa]' ORDER BY datum)"); Nicméně použití funkce na celý sloupec nebude moc rychlé a svědčí to o chybném návrhu databáze. Data měla být ve více sloupcích. |
||
TomášK Profil |
#10 · Zasláno: 13. 2. 2010, 00:48:55 · Upravil/a: TomášK
Já jsem dotaz pochopil úplně jinak, tedy že pro číslo 10600542 chceš porovnávat 542 s tím, co dostaneš:
$dotaz = mysql_query("(SELECT * FROM itinerar WHERE SUBSTR(id_mista,-3)= '$_GET[mapa]' ORDER BY datum)"); |
||
Cojetenkámoš Profil * |
#11 · Zasláno: 13. 2. 2010, 12:20:36
Moc děkuji za pomoc, je to skutečně blízko, ale evidentně tam ještě něco hapruje. :))
Mě jde o to porovnávat skutečně ta tři čísla, pokud jsou výsledkem 2, je to špatně. Výsledky: 359 71 12 12 |
||
Časová prodleva: 14 let
|
0