Linux за българи: Форуми

Програмиране => Общ форум => Темата е започната от: nov_chovek в Dec 05, 2005, 10:40



Титла: как да направя уайлдкард търсене
Публикувано от: nov_chovek в Dec 05, 2005, 10:40
Имам база данни с хора. Всеки има по три имена.

Искам да направя търсене по следния начин:

да се напише едно от трите имена и да ми изкарва всички записи където има това едно име. Имената на човека се съхраняват в едно поле на базата данни.

Абе на кратко, как става номера с уайлд кард търсенето?


Титла: как да направя уайлдкард търсене
Публикувано от: Hapkoc в Dec 05, 2005, 11:06
like %


Титла: как да направя уайлдкард търсене
Публикувано от: rat в Dec 05, 2005, 16:27
Както е посочил колегата става с оператора LIKE .Пример
Примерен код
select * from tbl1 where fname like "%ivan%" or lname like "%ivan%"


Титла: как да направя уайлдкард търсене
Публикувано от: nov_chovek в Dec 05, 2005, 17:17
мерси момчета, но имам още един въпрос относно подреждането по големина.

Имам две полета в една таблица. Всяко съдържа числа.

Поле едно има диапазон 1-4
Поле 2 има диапазон 1-11

стойностите на тия две полета ги изкарвам по двойки. Пример:

1,10
3,2 и т.н.

опитвам се да ги сортирам с:

Примерен код
Select * from Tablica ORDER BY Pole1 AND Pole2


Идеята е да сортира двойките числа първо по първата цифра и после по втората.
Естествено гония ред код не работи ,защото не е верен :)

ИСкан резултат:
1, 2
1, 4
1, 6
3, 4
3, 7
4, 4
4, 6 и т.н.

Разбрахте ли , от обърканите ми обяснения, просто не мога да го обясня по ясно от това :)


Титла: как да направя уайлдкард търсене
Публикувано от: Hapkoc в Dec 05, 2005, 17:33
ORDER BY Pole1, Pole2

п.с.: има доста литература за SQL написана и на хартия и в интернет, и за стандарти и за конкретни реализации, изобщо - чети

 :)


Титла: как да направя уайлдкард търсене
Публикувано от: nov_chovek в Dec 12, 2005, 13:14
здравейте пак,

имам проблем с like '%$var%' търсенето.

Имам името Иван Димитров Петров.

1.Като търся по "Иван" излиза като резултат цялото име.
2. Като търся по "Петров" -пак цялото име

3....но като търся по "Иван Петров" и не изкарва никакви резултати.


Едит: сетих се защо се получава, но помогнете как да го реша все пак :)
Защо се получава така? И как да реша проблема?


Титла: как да направя уайлдкард търсене
Публикувано от: Hapkoc в Dec 12, 2005, 15:44
Split-ваш името по интервалите и налепваш едно след друго условията с AND. Би трябвало да се получи нещо такова:

NAME LIKE '%Иван%' AND NAME LIKE '%Петров%'