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
$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 *
Děkuji za snahu, ale bohužel mi to nic nevypisuje.
Cojetenkámoš
Profil *
Aha, tak to je asi průšvih? :)

This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
Beavis
Profil
Cojetenkámoš:
Asi neaktuální verze MySQL.
Cojetenkámoš
Profil *
To ano, jenže to se dá na hostingu řešit dost obtížně. :(
Alphard
Profil
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 *
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
$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
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 *
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

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0