Jos hakee tietokannasta tekstihaulla (match) niin onko mahdollista järjestää hakutulokaset jotenkin järkevästi? Että ensin tulisivat täydelliset osumat ja sitten kaikki muu?
Esi jos hakee sanalla "uskomaton" ja vaihtoehdot ovat:
aika uskomaton
melko uskomaton
uskomaton
uskomaton juttu
Niin saako hakutulokset jotenkin "orderoitua" niin että ensin tulisi hakutulos "uskomaton" ja sen jälkeen kaikki muut aakkosjärjestyksessä?
Order by ???
3
586
Vastaukset
- tohlo
Ehkä jotenkin näin unionin avulla:
select teksti, 1 as tarkkuus, muut_kentät
from foobar
where teksti = 'uskomaton'
union
select teksti, 10 as tarkkuus, muut_kentät
from foobar
where teksti like '%uskomaton%'
order by tarkkuus;
Noita unionin osia voit nyt lisätä tarpeen mukaan useampiakin, esim. %-merkki vain lopussa olisi tarkkuus = 2, %-merkki vain alussa olisi tarkkuus = 3, %-merkki jokaisen sanavälin kohdalla olisi tarkkuus = 4, jne.
Toinen vaihtoehto on tehdä sql-funktio tai vastaava, joka annetuista kahdesta merkkijonosta jollakin algoritmilla päättelee niiden samuuden esim. prosentteina 0-100 %. Näin voinet järjestää lopullisen hakutuloksen tämän perusteella. - miimir
*Aiheen hyväksikäyttö*
Otsikko kertoo kaiken, eli pitäisi saada järjestettyä tulokset neljännen kirjaimen perusteella. Miten tuo onnistuu?
Tähän tyyliin:
113A
111B
112C- I.Proqatlis
SELECT * FROM mun_taulu ORDER BY SUBSTR(mun_tekstikentta, 4, 1);
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
- 751131
- 741124
- 481014
Miltä se tuntuu
Miltä se tuntuu havahtua, että on ollut ihmistä kohtaan, joka on rakastanut ja varjellut, täysi m*lkku? Vai havahtuuko s104968- 51935
- 34727
- 49704
- 53634
Mitä se olisi
Jos sinä mies saisit sanoa kaivatullesi mitä vain juuri nyt. Ilman mitään seuraamuksia yms. Niin mitä sanoisit?39632Nanna Karalahti :Paljastus bisneksistä Jere Karalahden kanssa!
Ottanut yhteyttä seiskalehden toimittajaan ja kertonut totuuden yhteisestä Herotreeni-nimisestä verkkovalmenuksesta.118567