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
564
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
Oletko kertonut jo muille tunteistasi?
Ystävillesi esimerkiksi? Minä en ole vielä kertonut kenellekään tästä meidän jutusta.774612- 1801887
- 1241580
- 1231110
- 351036
Miten minusta tuntuu että kaikki tietää sun tunteista mua kohtaan
Paitsi suoraan minä itse, vai mitä hlvettiä täällä tapahtuu ja miksi ihmiset susta kyselee minulta 🤔❤️161031- 78933
- 52886
Hyvää huomenta!
Mietin miten suhtaudut minuun, jos kerron tunteista. Voinko enää sen jälkeen olla samassa paikassa kanssasi, jos koet as78862- 4828