Merhaba arkadaşlar,
Bulduğum yöntemler tek kelimeyi buluyor fakat hepsinde bi gariplik var, LIKE olsun LIKE CONCAT olsun veya REGEXP olsun bunlarda arama yapınca üç türlü arama yapmazsak kelimeyi bulamadım. mesela
Otomobil marka model
Otomobil marka
Marka
Otomobil markalı model
Otomobil markalı
Markalı
Bu üçünden marka geçeni bulayım deyince, LIKE '%marka%' yazsam markalı olanlarıda buluyor, sadece 'marka' yazsam bu kez hiçbirşey bulmuyor, başa boşluk yazınca birini buluyor sona başlık yazınca öbürünü buluyor, şapka işaretiyle ^ işlem yapsam başta başka kelime olunca yine bulmuyor sonunda dolar işareti koysam sonra boşluk veya başka bişey varsa yine sıkıntı çıkıyor, yani php'de olduğu gibi \b işleci mysqlde yokmudur? Cümlenin içinde o tek kelimeyi gördümü o alanı verecek bana?
Bulursam buraya yazarım, aradım kafam karıştı, full text seacrh gibi birşey istemiyorum, sade mysql olacak.
mysql'de tek kelime arama nasıl yapılır?
7
●1.380
- 16-01-2018, 02:16:17% marka %AhmetTulgar adlı üyeden alıntı: mesajı görüntüle
%marka
'marka'
marka%
bu işimi görüyor fakat çok fazla arama cümlesi gireceğimden her cümledeki her kelimeyi böyle 4lersem sıkıntı olur, tek parçada yazmam gerek.
Diğer contains olanda işimi görmedi malesef, bişey çıkmadı aramadan. - 16-01-2018, 02:38:59contains işe yaraması lazım 'boşlukmarkaboşluk' bu şekilde kullanıyoruz değilmi contains sorgusu tam olarak bu ifadeyi içeriyormu diye bakıcaktır sağında solunda boşluk kullanırsanız sadece o içeriği arar tabi büyük küçük harf uyumunada dikkat eder or ile contains i tekrarlatabilirsiniz yani contains e göre marka ile Marka aynı değildir.ilgixcom adlı üyeden alıntı: mesajı görüntüle
- 16-01-2018, 02:44:44contains mysql terimi değil denmiş hocam, onun yerine INSTR var deniyor SELECT * FROM table WHERE INSTR(name, 'marka') > 0; varmış oda sondaki 0'ı 1 yapınca tam buldu, sağol yinede verdiğin örnekten böyle bir sonuca vardım, şimdilik istediğim oldu ama bi sıkıntı yaşarsam yazarım, eğer sondaki INSTR(name, 'marka') > 0 durursa 'markalı' olanıda buluyor ama 1 olursa sadece marka olanı buluyor.ssyazilim adlı üyeden alıntı: mesajı görüntüle
- 16-01-2018, 02:50:01sorunu çözmene sevindim benim akıl direk sql e gitmiş farketmez ama işte dillerin evrenselliği =) her dil birbirinin kopyası aslında yeterki ne istediğimizi bilelim başarılar.ilgixcom adlı üyeden alıntı: mesajı görüntüle
[[:<:]], [[:>:]] kelime başlangıç ve sonunu yani php'de regex \b işlecinin yerini mysql'de bu kodlar alıyormuş.