[php+mysql]szukanie rekordow zawierajacych ciag

0

mysle mysle ale tak slabo mysle ze nie mam pomyslu na to jak zrobic by z pola 'x' pobranego rekordu, wyszukac wszytkie pola 'x' ktore zawieraja dowolny ciag znaków >=3 z pierw pobranego x'a

0
koxak napisał(a)

mysle mysle ale tak slabo mysle ze nie mam pomyslu na to jak zrobic by z pola 'x' pobranego rekordu, wyszukac wszytkie pola 'x' ktore zawieraja dowolny ciag znaków >=3 z pierw pobranego x'a

Nie dość że słabo myślisz to jeszcze słabo opisujesz problem, uściślij:
Pobierasz wartość x z pola w tabeli, a później musisz wybrać wszystkie które posiadają 3 znaki z pobranej wartości w tym polu?
bo tak rozumiem zapis '>=3'
wiec może tak:
Pobierasz tą wartość i przypisujesz do zmiennej np. ciag

SELECT x FROM y WHERE x LIKE '%ciag%'

Oczywiście za ciag podstawiasz te 3 znaki których szukasz...

===========

teraz chyba zrozumiałem o co Ci chodzi musisz wyszukać dowolny 3 literowy ciąg z x w innych wartościch to zrób petle która Ci wygeneruje warunek werunek where w zapytaniu

Więc np masz słowo: "abrakadabra"
więc mozliwe trójki to
abr, bra, rak, aka, kad, ada, dab, abr, bra

Oczywiscie kwestie niwelowania duplikatów zostawiam tobie...

więc najprościej w pętli:

$x = 'abrakadabra';
$y = strlen($x) - 3; 

for ($i = 1; $i = $y ; $i++) {
    $warunek += "or x = '%"substr($x, $i - 1, 3) & "%' "
}
$zapytanie = "Select x from y where (" & substr($warunek, 3, strlen($warunek)) & ")";

I tak to powinnozadzaiałac, dawno nie kodowałem w PHP wiec nie gwarantuje że jest to dobrze...

0

SELECT x FROM y WHERE x LIKE '%ciag%'

Wszystko cacy tylko jeszcze kwestia ustawien bo 'CIAG' nie musi rownac sie 'ciag'
:D

0
Panczo napisał(a)

SELECT x FROM y WHERE x LIKE '%ciag%'

o uzyciu tego wiedzialem

Więc np masz słowo: "abrakadabra"
więc mozliwe trójki to
abr, bra, rak, aka, kad, ada, dab, abr, bra

więc najprościej w pętli:

$x = 'abrakadabra';
$y = strlen($x) - 3; 

for ($i = 1; $i = $y ; $i++) {
    $warunek += "or x = '%"substr($x, $i - 1, 3) & "%' "
}
$zapytanie = "Select x from y where (" & substr($warunek, 3, strlen($warunek)) & ")";

no i wlasnie mniej wiecej o cos takiego chodzilo dzieki

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