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

نام تاپیک: جستجو کالا

  1. #1
    کاربر دائمی
    تاریخ عضویت
    آذر 1389
    محل زندگی
    تبریز - شهرستان میانه
    سن
    33
    پست
    213

    جستجو کالا

    سلام دوستان چجوری میتونم کوئری بنویسم که کالا ها رو به شکل زیر جستجو کنم

    مثلا جستجو کنم "لولا برنجی" از لیست بره سرچ کنه و برام این فیلد رو نشون بده "لولا آرام بند جک برنجی 7 فنره STD"
    یا جستجو کنم "لولا کلیپس" همه اینا رو بیاره

    لولا ارام بند با کلیپس موشکی اکس
    لولا ارام بند بدون کلیپس
    لولا ارام بند بدون کلیپس TURK برنجی
    لولا ارام بند بدون کلیپس آما
    لولا ارام بند بدون کلیپس اکس
    لولا ارام بند بدون کلیپس بازل

    2024-04-22_22-51-22.jpg

    به شکل های مختلف جستجو LIKE , CONTAINS و .... میکنم نمیاره

    ممنون میشم دوستان راهنمایی کنن به چه روش میشه کوئری نوشت برای این کار

  2. #2
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    1,909

    نقل قول: جستجو کالا

    نقل قول نوشته شده توسط MahmoodM30 مشاهده تاپیک
    سلام دوستان چجوری میتونم کوئری بنویسم که کالا ها رو به شکل زیر جستجو کنم

    مثلا جستجو کنم "لولا برنجی" از لیست بره سرچ کنه و برام این فیلد رو نشون بده "لولا آرام بند جک برنجی 7 فنره STD"
    یا جستجو کنم "لولا کلیپس" همه اینا رو بیاره

    لولا ارام بند با کلیپس موشکی اکس
    لولا ارام بند بدون کلیپس
    لولا ارام بند بدون کلیپس TURK برنجی
    لولا ارام بند بدون کلیپس آما
    لولا ارام بند بدون کلیپس اکس
    لولا ارام بند بدون کلیپس بازل

    2024-04-22_22-51-22.jpg

    به شکل های مختلف جستجو LIKE , CONTAINS و .... میکنم نمیاره

    ممنون میشم دوستان راهنمایی کنن به چه روش میشه کوئری نوشت برای این کار
    سلام.
    برای دستور LIKE باید در متن جستجو از کاراکترهای جایگزین مثل * یا % استفاده کنید تا همچین خروجی داشته باشید.

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

    نقل قول: جستجو کالا

    سلام و روز خوش
    در تکمیل پست جناب ROSTAM گرامی:

    1- عبارتهای فارسی رو باید با پیشوند N مشخص کنین:
    SELECT ... FROM ... WHERE ... LIKE N'%لولا%'


    2- فقط % و _ و [] و [^] در SQL میتونه به عنوان wildcard استفاده بشه،
    * برای اکسس هست (فقط در DAO - در ADO همون % هست).

    چند نمونه زیر رو ببینین:

    SELECT City FROM Cities
    WHERE City LIKE N'%شهر%'

    که نتایج اون شامل اینهاست (شهر در هر جای نام) : آذرشهر ، بندرماهشهر ، رودبار شهرستان


    SELECT City FROM Cities
    WHERE City LIKE N'شهر%'

    نتایج (شروع نام با شهر) : شهریار ، شهرک ، شهرستانک

    SELECT City FROM Cities
    WHERE City LIKE N'%شهر'

    نتایج (شهر در پایان نام) : خرمشهر ، پیرانشهر ، بوشهر

    SELECT City FROM Cities
    WHERE City LIKE N'شهر___'

    نتایج (شروع نام با شهر و سه کارآکتر پشت سر اون - نه کمتر و نه بیشتر ) : شهرکرد ، شهرپیر ، شهریار

    SELECT City FROM Cities
    WHERE City LIKE N'شهر[ب-پ]%'

    نتایج (شروع نام با شهر و کارآکتر چهارم فقط ب یا پ : شهربابک ، شهرپیر

    SELECT City FROM Cities
    WHERE City LIKE N'شهر[^ ]%'


    نتایج (شروع نام با شهر و کارآکتر چهارم SPACE نباشه : شهرک ، شهربابک (ولی نه "شهر بابک")

  4. #4
    کاربر دائمی
    تاریخ عضویت
    آذر 1389
    محل زندگی
    تبریز - شهرستان میانه
    سن
    33
    پست
    213

    نقل قول: جستجو کالا

    ممنون از دوستان ولی این ها رو امتحان کردم و نتیجه مورد نظرم رو نگرفتم

    تو تصویر زیر ببینید من لولا خالی رو جستجو میکنم نتیجه میشه زیر

    2024-04-24_08-49-40.jpg

    حالا من لولا 90 رو سرچ میکنم میخوام برایم فقط بیاره لولا کابینت 90 درجه

    2024-04-24_08-47-56.jpg

  5. #5
    کاربر دائمی
    تاریخ عضویت
    آذر 1389
    محل زندگی
    تبریز - شهرستان میانه
    سن
    33
    پست
    213

    نقل قول: جستجو کالا

    اگه غیر این باشه جستجوی کالا سخت میشه چون اسم کامل کالا یاد کاربر نمیمونه که قبلا چی ثبت کرده
    میخواد مثلا بنویسه لولا 90 سریع بهترین گزینه رو بیاره در غیر این صورت 200 تا کالا براش میاره که توش لولا و 90 هست این باید دوباره تو لیست بالا پایین کنه گزینه مورد نظر رو پیدا کنه ولی اگه گزینه محدود تر به سه یا 2 کالا بشه بهتر میتونه انتخاب کنه

    حتی ممکنه لولا اول کلمه نباشه و دومین کلمه باشه

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

    این مدل جستجو تو مخاطبین موبایل هم هست و تو یسری نرم افزار دیگه هم دیدمبرا همین میخوام اون مدلی جستجو انجام بشه

  6. #6
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    1,909

    نقل قول: جستجو کالا

    نقل قول نوشته شده توسط MahmoodM30 مشاهده تاپیک
    ممنون از دوستان ولی این ها رو امتحان کردم و نتیجه مورد نظرم رو نگرفتم

    تو تصویر زیر ببینید من لولا خالی رو جستجو میکنم نتیجه میشه زیر

    2024-04-24_08-49-40.jpg

    حالا من لولا 90 رو سرچ میکنم میخوام برایم فقط بیاره لولا کابینت 90 درجه

    2024-04-24_08-47-56.jpg
    سلام مجدد
    اون کاراکتر جایگزین رو اطراف کلمه ای که می خواهی جستجو کنی استفاده کن.


    %لولا%90%
    آخرین ویرایش به وسیله ROSTAM2 : چهارشنبه 05 اردیبهشت 1403 در 14:32 عصر

  7. #7
    کاربر دائمی
    تاریخ عضویت
    آذر 1389
    محل زندگی
    تبریز - شهرستان میانه
    سن
    33
    پست
    213

    نقل قول: جستجو کالا

    ببخشید منظورتون کدوم کاراکتر هست؟

  8. #8
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    1,909

    نقل قول: جستجو کالا

    نقل قول نوشته شده توسط MahmoodM30 مشاهده تاپیک
    ببخشید منظورتون کدوم کاراکتر هست؟
    به کاراکترهایی که جای کلمات دیگه رو پر می کنن می گن کاراکتر جایگزین: می تونه % باشه یا * یا ؟

  9. #9
    کاربر دائمی
    تاریخ عضویت
    آذر 1389
    محل زندگی
    تبریز - شهرستان میانه
    سن
    33
    پست
    213

    نقل قول: جستجو کالا

    ممنون دوست عزیز از راهنمایی که کردید با همین مشکل رو حل کردم

  10. #10
    کاربر دائمی آواتار fakhravari
    تاریخ عضویت
    دی 1388
    محل زندگی
    بوشهر
    سن
    34
    پست
    8,054

    نقل قول: جستجو کالا

    https://learn.microsoft.com/en-us/sq...l-server-ver16





    SELECT * FROM WareHouse.INV_Kala p
    JOIN (SELECT * FROM STRING_SPLIT (N'کرم چندمنظوره',N' '))x ON p.Kala_FarsiDesc LIKE N'%'+x.value+'%'

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

    نقل قول: جستجو کالا

    [QUOTE=fakhravari;2468084]

    SELECT * FROM WareHouse.INV_Kala p
    JOIN (SELECT * FROM STRING_SPLIT (N'کرم چندمنظوره',N' '))x ON p.Kala_FarsiDesc LIKE N'%'+x.value+'%'


    سلام و روز خوش
    استفاده از STRING_SPLIT هوشمندانه بود،
    ولی اینجا چون JOIN کردین همه رکوردهایی که هریک از واژه ها رو داشته باشه برمیگردونه: چه "کرم" چه "چندمنظوره"،
    ولی خواسته این هست که همه اینها رو داشته باشه - بدون ترتیب.


    فرض کنید در یک دیتا نمونه از مشخصات فیلم ها،
    دنبال Title هایی هستیم که هر سه واژه the - gun - man رو داشته باشه - بدون ترتیب:
    USE SHOWS;
    SELECT IMDBID , Title , Genres
    FROM Shows
    WHERE TITLE LIKE N'%man%' AND TITLE LIKE N'%the%' AND TITLE LIKE N'%gun%'

    Screenshot 2024-04-30 234713.png


    حالا اجازه بدین کد شما رو تست کنیم:
    USE SHOWS;
    SELECT IMDBID , Title , Genres
    FROM Shows
    JOIN (SELECT * FROM STRING_SPLIT (N'man the gun',N' ')) x
    ON Shows.Title LIKE N'%'+x.value+'%'

    Screenshot 2024-04-30 235836.png


    همینجور که میبینین هر رکوردی رو که فقط یکی از واژه ها رو هم داشته باشه میاره،
    و البته اگر بیشتر از یکی باشه تکراری هم میاره - ردیف 2 و 3 رو دقت کنین یا تصویر پایین که هر چون هر 3 مورد بوده 3 رکورد آورده:

    Screenshot 2024-05-01 000451.png

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

    نقل قول: جستجو کالا

    پس لازم هست که نتایج رو گروه بندی کنیم،
    و فقط اونهایی رو که هر 3 شرط (در حالت کلی به شماره واژه های درون عبارت ) رو دارا هستن فیلتر کنیم:

    USE SHOWS;

    declare @Words nvarchar(max)=N'man the gun';
    declare @Words_Count int = (SELECT COUNT(value) FROM STRING_SPLIT(@Words,N' '));

    WITH All_Words AS (
    SELECT value
    FROM STRING_SPLIT(@Words,N' ')
    )

    SELECT IMDBID , Title , Genres
    FROM Shows
    JOIN All_Words ON Shows.Title LIKE N'%' + value + '%'
    GROUP BY IMDBID , Title
    HAVING COUNT(All_Words.value)=@Words_Count

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

    نقل قول: جستجو کالا

    اینجوری هم میشه نوشت:
    USE SHOWS;

    declare @Words nvarchar(max)=N'man the gun';
    declare @Words_Count int = (SELECT COUNT(value) FROM STRING_SPLIT(@Words,N' '));

    WITH All_Words AS (
    SELECT value
    FROM STRING_SPLIT(@Words,N' ')
    )

    SELECT IMDBID , Title , Genres
    FROM Shows
    WHERE
    (SELECT COUNT(value)
    FROM All_Words
    WHERE shows.title LIKE N'%' + value + '%'
    ) = @Words_Count

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

  1. پاسخ: 5
    آخرین پست: چهارشنبه 22 شهریور 1402, 15:26 عصر
  2. پاسخ: 11
    آخرین پست: سه شنبه 12 فروردین 1399, 11:08 صبح
  3. استخدام برنامه نویس در استان همدان شهرستان تویسرکان
    نوشته شده توسط alvandyhamed در بخش آگهی های استخدام
    پاسخ: 0
    آخرین پست: جمعه 07 مرداد 1390, 18:26 عصر

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

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