Autor Zpráva
Boogy
Profil *
Ahoj, snažím se neúspěšně udělat dotaz který provede následující: Podívá se jestli je v tabulce záznam kterého id opodpovídá 5 a pokud žádný takový nenajde, podívá se jestli tam je záznam u kterého se číslo rovná 555... momentálně to mám jako WHERE id = '5' or cislo = '555' jenomže tam je problém ten, že i když v tabulce to id 5 je, tak pokud to najde záznam který má číslo 555 dřív než ten s id 5, tak to vrátí ten s číslem 555... a já právě potřebuji aby větší prioritu mělo to id, takže nejdřív aby to projelo celou tabulku s hledáním id a až pak s hledáním čísla

díky za radu
Alphard
Profil
Nestačilo by vám přidat do dotazu order by id? Ten s menším id (5) bude vždy první.
Boogy
Profil *
To číslo je jen příklad, ve skutečnosti číslo bude ip adresa která může být se záznamem co má id 1 ale i s nějakým co má id 900, takže seřadit mi to nepomůže, musí to nějako vyhledávat prioritně.. teď to mám řešené dvěma mysql dotazy, jeden hledá id a pokud je prázdný, druhý hledá číslo, ale chtěl bych to nacpat do jednoho
Alphard
Profil
Napadá mě ještě jedno jednoduché řešení: první dotaz union druhý dotaz a zbytek zahodít.

Jestli trváte na prioritě, MySQL samozřejmě umí pracovat s podmínkami, ať již v klasickém dotazu nebo proceduře, ale o moc jednodušší to asi nebude. Přímo konstukci, která by prioritně hledala výraz X ve sloupci A a potom výraz Y ve sloupci B neznám.

Za [#2] se omlouvám, špatně jsem to pochopil.

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