• 16-01-2018, 01:32:34
    #1
    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.
  • 16-01-2018, 02:00:33
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    WHERE text like '% marka %' or text like 'marka' or text like '% marka' or text like 'marka %'
    İşinizi görmez mi hocam?
  • 16-01-2018, 02:00:40
    #3
    SELECT Name FROM Production.Product WHERE CONTAINS(Name, ' marka ')
  • 16-01-2018, 02:16:17
    #4
    AhmetTulgar adlı üyeden alıntı: mesajı görüntüle
    WHERE text like '% marka %' or text like 'marka' or text like '% marka' or text like 'marka %'
    İşinizi görmez mi hocam?
    % marka %
    %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:59
    #5
    ilgixcom adlı üyeden alıntı: mesajı görüntüle
    % marka %
    %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.
    contains 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.
  • 16-01-2018, 02:44:44
    #6
    ssyazilim adlı üyeden alıntı: mesajı görüntüle
    contains 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.
    contains 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.
  • 16-01-2018, 02:50:01
    #7
    ilgixcom adlı üyeden alıntı: mesajı görüntüle
    contains 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.
    sorunu çö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.
  • 16-01-2018, 03:36:29
    #8
    Teşekkür ederim sizlerede başarılar, bu arada tam çözümüde buldum,
    WHERE kelimeler REGEXP '[[:<:]]kelime[[:>:]]'
    bu şekildeymiş [[:<:]], [[:>:]] kelime başlangıç ve sonunu yani php'de regex \b işlecinin yerini mysql'de bu kodlar alıyormuş.