نقل قول: جستجو در چند فیلد
پرسش با نمونه ای که گذاشتین همخوانی نداره،
در واقع شما دارین چند عبارت رو در یک عبارت جستجو میکنین (اینکه اون عبارت خودش از پیوستن چند فیلد ساخته میشه مهم نیست)
باید برای هر عبارت جداگانه مقایسه و اونها رو با هم AND یا OR کنین؛
یا:
برای هر عبارت یک select بنویسین و نتایج رو union کنین (اگر شرط ها باید با هم AND بشن جواب نمیده)
نقل قول: جستجو در چند فیلد
عبارت فوق در مورد هر کدام از جستجوهای زیر مشکلی ندارد
"احمد"
"محمد%احمد%بلوچ"
"حس%زاد%لوچ"
و اگر فیلدهایی شامل بخشی از کلمات فوق باشند نتایج را از رکوردست استخراج می کند
البته من شاید منظورم را بد رساندم
در یک بانک اطلاعاتی من دنبال افرادی به نام محمد و فامیلی احمدزاده می گردم
با نوشتن عبارت محمد%احمد این افراد استخراج و نمایش داده می شوند
حال اگر من عبارت احمد%محمد را بنویسم منطقا اگر افرادی به نام محمد و فامیلی احمد باشند جستجو نخواهند شد و کسانی که نامشان احمد و فامیلی محمد دارند یافت خواهند شد
منظورم من این بود که کد عبارت جستجو به نحوی باشد که نتایج موسع تری بتوان از آن استخراج کرد. البته شاید بفرمایید این چه کاری است. چون در جستجو همیشه دنبال خلاصه کردن اطلاعات هستیم. اما به هر حال گفتم شاید به عنوان یک ایده یک قدم در کد نویسی به توانمندی خود بیفزاییم
نقل قول: جستجو در چند فیلد
این که گفتم پرسش با نمونه همخوانی نداره بخاطر این بود که هم خواسته شما رو میدونم چی هست و هم میدونم روش کارتون اشتباه هست.
فکر کنم با کار * (و نه %) آشنایی ندارین!
وقتی "*محمد*احمد*" رو جستجو میکنین یعنی اول محمد بعد احمد، ترتیب کاملا اهمیت داره ولی اینکه قبل و بین و بعدش چی هست اهمیت نداره.
اینکه چند فیلد رو concat کنین چاره کار نیست مگر اینکه ترتیب concat کردن با ترتیب عبارات یکی باشه.
برای هر عبارت باید در فیلد خودش جستجو کنین:
WHERE FirstName Like '*احمد*' AND LastName Like '*محمدزاده*' AND State Like '*ستان*'
نقل قول: جستجو در چند فیلد
در دستورات sql بین علامت % با * تفاوتی ندیدم . شاید هم تفاوتی هست که من دقت نکردم.
در هر صورت تشکر.
نقل قول: جستجو در چند فیلد
نقل قول:
نوشته شده توسط
mohammadsaleh
در دستورات sql بین علامت % با * تفاوتی ندیدم . شاید هم تفاوتی هست که من دقت نکردم.
در هر صورت تشکر.
سلام
تو اکسس 2019 * ایراد میگیره و باید از % استفاده بشه
نقل قول: جستجو در چند فیلد
در تایپیک ایجاد شده مطلبتون رو دنبال کنید نه اینجا
نقل قول: جستجو در چند فیلد
سلام.
راه ساده ای پیدا کردم که این مشکل رو حل می کنه . کافی است سه فیلد را در کوئری تبدیل به یک فیلد کنیم و برای جستجوی هر تعداد کلمه مورد جستجو را با اپراتور LIKE و بین هرکدام AND بنویسیم
مثل نمونه زیر که فرض میکنیم COLUMNAME حاوی مطالب سه فیلد است. به این ترتیب ترییب جستجو دیگر اهمیت نداری. Select*fromtablewhere
columnname like'%David%'and
columnname like'%Moses%'and columnname like'%Robi%'
نقل قول: جستجو در چند فیلد
نقل قول:
نوشته شده توسط
mazoolagh
در واقع شما دارین چند عبارت رو در یک عبارت جستجو میکنین (اینکه اون عبارت خودش از پیوستن چند فیلد ساخته میشه مهم نیست)
باید برای هر عبارت جداگانه مقایسه و اونها رو با هم AND یا OR کنین؛
همین پست رو با دقت خونده بودین لازم نبود سه ماه وقت بگذارین و به همین پاسخ برسین!