Autor | Zpráva | ||
---|---|---|---|
Boogy Profil * |
#1 · Zasláno: 9. 5. 2010, 10:19:39
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 |
#2 · Zasláno: 9. 5. 2010, 10:22:33
Nestačilo by vám přidat do dotazu
order by id ? Ten s menším id (5) bude vždy první.
|
||
Boogy Profil * |
#3 · Zasláno: 9. 5. 2010, 10:28:00
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 |
#4 · Zasláno: 9. 5. 2010, 10:50:40
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. |
||
Časová prodleva: 14 let
|
0