نمایش نتایج 1 تا 9 از 9

نام تاپیک: جستجو در چند فیلد

  1. #1
    کاربر دائمی آواتار mohammadsaleh
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    679

    جستجو در چند فیلد

    سلام دوستان
    برای جستجوی یک عبارت در چند فیلد می توان از عبارتی شبیه عبارت زیر استفاده کرد:
     Where f1 & '  ' & f2 & '  ' & f3 like '%" & strSearch & "%' 
    برای مثال فیلدهای سه گانه به ترتیب شامل کلمات محمدحسین - احمدزاده - سیستان و بلوچستان می باشد.
    با جستجوی
    "احمد"
    "محمد%احمد%بلوچ"
    "حس%زاد%لوچ"
    رکورد مورد نظر یافت می شود. اما در صورتی که ترتیب نوشتن فیلدها جابجا شود
    مثل
    "احمد%محمد%بلوچ"
    "بلوچ%حسین"
    رکوردی یافت نمی شود
    البته این نتیجه منطقی است و به آن ایرادی وارد نیست. اما در برنامه نویسی همه چیز ممکن است، چراکه در گوگل سرچ این اتفاق ممکن شده.
    آیا راه حلی به نظر اساتید می رسد

  2. #2
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,030

    نقل قول: جستجو در چند فیلد

    پرسش با نمونه ای که گذاشتین همخوانی نداره،
    در واقع شما دارین چند عبارت رو در یک عبارت جستجو میکنین (اینکه اون عبارت خودش از پیوستن چند فیلد ساخته میشه مهم نیست)
    باید برای هر عبارت جداگانه مقایسه و اونها رو با هم AND یا OR کنین؛

    یا:

    برای هر عبارت یک select بنویسین و نتایج رو union کنین (اگر شرط ها باید با هم AND بشن جواب نمیده)

  3. #3
    کاربر دائمی آواتار mohammadsaleh
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    679

    نقل قول: جستجو در چند فیلد

    عبارت فوق در مورد هر کدام از جستجوهای زیر مشکلی ندارد
    "احمد"
    "محمد%احمد%بلوچ"
    "حس%زاد%لوچ"
    و اگر فیلدهایی شامل بخشی از کلمات فوق باشند نتایج را از رکوردست استخراج می کند
    البته من شاید منظورم را بد رساندم
    در یک بانک اطلاعاتی من دنبال افرادی به نام محمد و فامیلی احمدزاده می گردم
    با نوشتن عبارت
    محمد%احمد این افراد استخراج و نمایش داده می شوند
    حال اگر من عبارت احمد%محمد را بنویسم منطقا اگر افرادی به نام محمد و فامیلی احمد باشند جستجو نخواهند شد و کسانی که نامشان احمد و فامیلی محمد دارند یافت خواهند شد
    منظورم من این بود که کد عبارت جستجو به نحوی باشد که نتایج موسع تری بتوان از آن استخراج کرد. البته شاید بفرمایید این چه کاری است. چون در جستجو همیشه دنبال خلاصه کردن اطلاعات هستیم. اما به هر حال گفتم شاید به عنوان یک ایده یک قدم در کد نویسی به توانمندی خود بیفزاییم


  4. #4
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,030

    نقل قول: جستجو در چند فیلد

    این که گفتم پرسش با نمونه همخوانی نداره بخاطر این بود که هم خواسته شما رو میدونم چی هست و هم میدونم روش کارتون اشتباه هست.
    فکر کنم با کار * (و نه %) آشنایی ندارین!
    وقتی "*محمد*احمد*" رو جستجو میکنین یعنی اول محمد بعد احمد، ترتیب کاملا اهمیت داره ولی اینکه قبل و بین و بعدش چی هست اهمیت نداره.
    اینکه چند فیلد رو concat کنین چاره کار نیست مگر اینکه ترتیب concat کردن با ترتیب عبارات یکی باشه.

    برای هر عبارت باید در فیلد خودش جستجو کنین:
    WHERE FirstName Like '*احمد*' AND LastName Like '*محمدزاده*' AND State Like '*ستان*'

  5. #5
    کاربر دائمی آواتار mohammadsaleh
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    679

    نقل قول: جستجو در چند فیلد

    در دستورات sql بین علامت % با * تفاوتی ندیدم . شاید هم تفاوتی هست که من دقت نکردم.
    در هر صورت تشکر.

  6. #6

    نقل قول: جستجو در چند فیلد

    نقل قول نوشته شده توسط mohammadsaleh مشاهده تاپیک
    در دستورات sql بین علامت % با * تفاوتی ندیدم . شاید هم تفاوتی هست که من دقت نکردم.
    در هر صورت تشکر.
    سلام
    تو اکسس 2019 * ایراد میگیره و باید از % استفاده بشه

  7. #7
    کاربر دائمی آواتار mohammadsaleh
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    679

    نقل قول: جستجو در چند فیلد

    در تایپیک ایجاد شده مطلبتون رو دنبال کنید نه اینجا

  8. #8
    کاربر دائمی آواتار mohammadsaleh
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    679

    نقل قول: جستجو در چند فیلد

    سلام.
    راه ساده ای پیدا کردم که این مشکل رو حل می کنه . کافی است سه فیلد را در کوئری تبدیل به یک فیلد کنیم و برای جستجوی هر تعداد کلمه مورد جستجو را با اپراتور LIKE و بین هرکدام AND بنویسیم

    مثل نمونه زیر که فرض میکنیم COLUMNAME حاوی مطالب سه فیلد است. به این ترتیب ترییب جستجو دیگر اهمیت نداری.
    Select*fromtablewhere
    columnname
    like'%David%'and
    columnname
    like'%Moses%'and columnname like'%Robi%'

  9. #9
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,030

    نقل قول: جستجو در چند فیلد

    نقل قول نوشته شده توسط mazoolagh مشاهده تاپیک
    در واقع شما دارین چند عبارت رو در یک عبارت جستجو میکنین (اینکه اون عبارت خودش از پیوستن چند فیلد ساخته میشه مهم نیست)
    باید برای هر عبارت جداگانه مقایسه و اونها رو با هم AND یا OR کنین؛
    همین پست رو با دقت خونده بودین لازم نبود سه ماه وقت بگذارین و به همین پاسخ برسین!

تاپیک های مشابه

  1. پاسخ: 5
    آخرین پست: چهارشنبه 22 شهریور 1402, 14:26 عصر
  2. آموزش: پرشین استخر،بزرگترین سایت آموزش ساخت استخر How Make Swimmin Pools-Persian Pool
    نوشته شده توسط soroushm در بخش آگهی‌ها
    پاسخ: 0
    آخرین پست: یک شنبه 12 شهریور 1396, 07:35 صبح
  3. استخدام برنامه نویس در استان همدان شهرستان تویسرکان
    نوشته شده توسط alvandyhamed در بخش آگهی های استخدام
    پاسخ: 0
    آخرین پست: جمعه 07 مرداد 1390, 17:26 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •