[MySQL] - pozycja wyszukanej frazy

Odpowiedz Nowy wątek
2009-08-28 16:42
0

Witam was.

Pisze ostatnio prosta wyszukiwarke i oczywiscie trafilem na problem. Mianowicie jezeli mam zapytanie

SELECT * FROM wiadomosci
WHERE pole1 LIKE "%tekst%" OR pole2 LIKE "%tekst%" OR pole3 LIKE "%tekst%"

Czy da sie w jakikolwiek sposob sprawdzic w ktorych kolumnach zostal znaleziony wyszukiwany tekst oraz na jakiej pozycji?

Poniewaz chcialbym uzytkownikowi wyswietlic fragment kolumny i pogrubiona wyszukiwana fraze ( jak w google, wiecie o co chodzi ).

Jezeli macie jakies pomysly to dajcie znac.
Najlepiej jakby bylo jakies rozwiazanie przy pomocy zapytania bo ponowne wyszukiwanie w php to ostatecznosc.

Pozostało 580 znaków

2009-08-28 18:20
0
SELECT *,'pole1' as identyfikator_pola FROM wiadomosci WHERE pole1 LIKE "%tekst%"
union
SELECT *,'pole2' as identyfikator_pola FROM wiadomosci WHERE pole2 LIKE "%tekst%"
union
SELECT *,'pole3' as identyfikator_pola FROM wiadomosci WHERE pole3 LIKE "%tekst%"

"*" koniecznie na początku.


Nie łam się, i tak ktoś zrobił to za ciebie
<hr style="color: #B10C0C; width: 10%; margin-left: 0" />
LUDZIE goto NIE UŻYWA SIĘ WSZĘDZIE GDZIE MOŻNA, TYLKO TAM GDZIE TRZEBA

Pozostało 580 znaków

2009-08-28 22:14
0

Dzieki :-)
To pytanie ktora to kolumna juz jest zalatwione.
A czy da sie jeszcze jakos odczytac pozycje w tekscie?
Np jezeli slowo "tekst" jest 12 slowem w polu2 to da sie jakos odczytac ta pozycje, ze np. slowo tekst znajduje sie na 112 znaku? Czy pozostaje juz tylko php?

Pozostało 580 znaków

2009-08-29 08:18
0
SELECT *,'pole1' AS identyfikator_pola, LOCATE('tekst',pole1) AS pozycja FROM wiadomosci WHERE pole1 LIKE "%tekst%"
union
SELECT *,'pole2' as identyfikator_pola, LOCATE('tekst',pole1) AS pozycja  FROM wiadomosci WHERE pole2 LIKE "%tekst%"
union
SELECT *,'pole3' as identyfikator_pola, LOCATE('tekst',pole1) AS pozycja  FROM wiadomosci WHERE pole3 LIKE "%tekst%"

Ogólnie to proponowałbym zapoznać się z tym skoro korzystasz z MySQL. Fakt, że po angielsku, ale w "branży" jak nie znasz angielskiego przynajmniej biernie to ... zmień branżę :>


Nie łam się, i tak ktoś zrobił to za ciebie
<hr style="color: #B10C0C; width: 10%; margin-left: 0" />
LUDZIE goto NIE UŻYWA SIĘ WSZĘDZIE GDZIE MOŻNA, TYLKO TAM GDZIE TRZEBA

Pozostało 580 znaków

2009-08-29 09:34
0

Spoko poradze sobie.
A co do "branzy" to obecnie nie jest moja branza.
Po prostu pisze sobie swoja stronke i chce cos takiego napisac.
Tak czy inaczej dzieki za odpowiedzi.

Pozostało 580 znaków

2009-08-29 17:27
0
Loloki napisał(a)
SELECT *,'pole1' as identyfikator_pola FROM wiadomosci WHERE pole1 LIKE "%tekst%"
union
SELECT *,'pole2' as identyfikator_pola FROM wiadomosci WHERE pole2 LIKE "%tekst%"
union
SELECT *,'pole3' as identyfikator_pola FROM wiadomosci WHERE pole3 LIKE "%tekst%"

"*" koniecznie na początku.

Dlaczego "koniecznie na początku"? Zaciekawiło mnie to...
Poza tym tylko w pierwszym SELCT podaje się nazwy pól - w kolejnych już raczej nie...

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0