عامه نویسی جهت مطابقت نتایج در یک عبارت WHERE
در این آموزش دانش پژوه فرا میگیرد که چگونه برای فیلتر کردن داده های اطلاعاتی خاص از یک جدول مدنظر، در شرط WHERE محیط SQL Server از وایلدکاردها استفاده نماید.
جدول محتوا
ایجاد انطباق با بخشی از محتوا به کمک دستور Where
زمانی که با برخی از فیلدها کار میکنیم، مخصوصاً فیلدهای متنی، گاهی اوقات پیش میآید که ما نمیخواهیم که فیلد ما با یک چیزی به صورت کامل مطابقت داشته باشد. فقط میخواهیم یک بخشی از فیلد با آن چیزی که میخواهیم منطبق شود. در واقع یک تطبیق جزئی مدنظر ما است، دستورات sql در بند where این را ساپورت میکنند.
حالا من میخواهم یک query جدیدی را باز کنم و با چیزهایی مشابه با آنهایی که قبلاً استفاده کردیم، شروع کنم.
من پیش میروم و آنرا اجرا میکنم و چند عنوان شغلی متفاوت را که شامل کلمه enineering است را میبینم.
بنابراین احتمال دارد الان من بیایم و بگویم که به هر عنوان کاری که کلمه engineer یا engineering داشته باشد، علاقهمند هستم و به آنها نیاز دارم.
بکارگیری عبارت Like در کدنویسی
بنابراین باید یک الگو جستجویی را ایجاد و جایگزین کنم، که شامل علائمی باشد که میخواهم و همچنین آنرا در متن کوئری با الگو جدید خود جایگزین و تطبیق دهم تا کلمههایی که این علائم را دارند، فیلتر کنم.
برای این منظور باز هم از کلمه کلیدی where استفاده میکنیم.
در فیلد jobtitle، این جستجو را انجام میدهم.
به جای اینکه بگویم برابر با یک jobtitle خاصی باشد، از کلمه کلیدی l-i-k-e استفاده میکنم و میخواهم که عنوان کاری من مثل یک عبارت داخل تک کوتیشن باشد.
استفاده از علامت % در کدهای SQL Server
با تک کوتیشن شروع میکنم و علامتی برای الگو قرار میدهم که در sql علامت درصد است.
بعد از آن کلمه را جستجو میکنم که کلمه من در اینجا engineer است و بعد از این کلمه علامت درصد و در پایان یک تک کوتیشن قرار میدهم.
بنابراین داریم ‘%Engineer%’.
اینرا اجرا میکنم.
8 سطر را به من برمیگرداند و همانطور که میبینید، همه آنها شامل کلمه engineer در بسیاری از جاها هستند
نکات کلیدی در استفاده از علامت % حین کدنویسی
و حالا اینرا هم بگویم که شما حتماً نباید درصد را قبل و بعد از کلمه قرار دهید. شما میتوانید فقط یکی از آنها را حالا یا علامت درصد اولی یا علامت درصد دومی را اعمال کنید.
من میخواهم که درصد انتهایی را حذف کنم و دوباره این query را اجرا کنم و میبینم که نتایج متفاوتتری را به من برمیگرداند.
اساساً این query هر چیزی را که انتها آن با کلمه engineer همراه است را جستجو میکند. بنابراین این هم روشی برای فیلتر engineer در آخر کلمات است.
این الگو با هر متنی مطابقت داده میشود، اما ما بعد از کلمه engineer علامت درصد را نداریم. الان نتایجی قابل مشاهده هستند که engineer باید آخرین چیزی باشد که در فیلد است
جمع بندی
و به یاد داشته باشید، که هر زمانی که از الگو و درصد برای جستجو استفاده کردید، باید از کلمه کلیدی like استفاده کنید نه علامت تساوی.
اگر شما علامت تساوی را قرار بدهید و اجرا کنید.
به شما ارر میدهد و یک مجموعه نتیجه خالی تحویل شما میدهد که مسلماً آن چیزی که ما میخواهیم نیست. در حقیقت یک خطا ممکن است که شما را به مجموعه نتایج خالی پرتاب کند که اشاره به این موضوع دارد که برخی چیزها درست نیستند و باید حواس ما باشد و به یاد داشته باشیم هنگام برخورد با درصد، like را به جای = استفاده کنیم.