شما عضو این انجمن نبوده یا وارد نشده اید. لطفا برای مشاهده کامل انجمن و استفاده از آن وارد شوید یا ثبت نام کنید .

امتیاز موضوع:
امتیاز موضوع:
  • 35 رأی - میانگین امتیازات: 2.94
  • 1
  • 2
  • 3
  • 4
  • 5
نحوه استفاده از WHERE در MySQL
#1
همان طور که پیش تر در آموزش های مقدماتی MySQL گفتیم، هنگامی که با دستور SELECT FROM در MySQL کار می کنیم، نیاز به ایجاد محدودیت هایی داریم تا اطلاعات دقیق تری بدست آوریم، به عنوان مثال اگر لیست اسامی ده هزار نفر را در دیتابیس خود به صورت نام، نام خانوادگی و سن داشته باشیم و بخواهیم به فرض تنها افرادی را که اسم آنها بهرام است، در خروجی داشته باشیم، باید از WHERE و پارامترهای آن استفاده کنیم، WHERE در واقع نشانی دقیق ستون و سطرهایی که ما از MySQL پرس و جو می کنیم را تعریف می کند، از اینرو در کار با پایگاه داده و کدهای php اهمیت و کاربرد زیادی دارد، در ادامه آموزش، خواهیم دید که این عنصر تا چه میزان می تواند دقت و سرعت کار ما را افزایش دهد.

چگونه از WHERE استفاده کنیم؟

شیوه نگارش یا همان syntax عنصر WHERE و پارامترهای آن چندان سخت نیست، کافی است آن را در ادامه دستور SELECT FROM قرار دهید، مثال زیر یک نمونه از آن را نشان می دهد.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

در مثال بالا از جدول فرضی table جایی که ستون id برابر یک است را انتخاب کرده ایم، با این کار اطلاعات کل یک ردیف که آی دی آن برابر یک است، در دسترس قرار می گیرد، مثلا ممکن است در آن ردیف اطلاعات دیگری نظیر نام، نام خانوادگی، سن و... را (از قبل) ذخیره کرده باشیم.

استفاده از علامت بزرگتر، کوچکتر و مساوی در WHERE

عبارت WHERE در یک دستور SELECT FROM، تعیین کننده منظور دقیق ما در انتخاب اطلاعات است، درست مثل اینکه در یک کتابخانه به کتابدار بگوییم ازمیان قفسه ها، بخش تاریخ، کتاب تاریخ جهان، انتشارات فلان و... را بیاورد، تمام جزئیات در درخواست ما باید با عباراتی بیان شوند، این کار در MySQL با پارامترهای WHERE صورت می گیرد، یکی از این پارامترها علامت های بزرگتر، کوچکتر و مساوی (<=>) هستند، با این علامت ها مثلا می توانیم به دیتابیس بگوییم ردیف هایی را انتخاب کند که به فرض سن کاربر از 25 سال بیشتر باشد، این کار را به صورت زیر به پایگاه داده تفهیم می کنیم.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
در واقع عبارت بالا به این معنی است: از جدول فرضی table ستون age، تنها ردیف هایی را انتخاب کن که مقادیر سن کمتر از 25 باشد.

همین کار در مثال زیر، این بار با علامت نا مساوی انجام شده است.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
مفهوم عبارت بالا به این معنی است: از جدول فرضی table ستون age، ردیف هایی را انتخاب کن که مقادیر سن برابر 20 نباشد.
به خاطر داشته باشید، عبارات بزرگتر و کوچکتر، تنها در مقایسه اعداد کاربرد دارند و بهتر است نوع داده ها به صورت INT یا عددی باشند، اما از علامت مساوی (و نامساوی)، هم برای اعداد و هم برای مقادیر رشته ای (متنی) می توان استفاده کرد.

استفاده از عبارت LIKE در WHERE

استفاده از علامت بزرگتر، کوچکتر و مساوی در WHERE به تنهایی تمام خواسته های ما را پوشش نمی دهد، فرض کنید اسامی چند نفر جهت نمونه به صورت زیر در جداول ما ذخیره شده اند.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

اکنون می خواهیم تنها کسانی که دو حرف اول نام آنها با حروف A و R شروع شده را انتخاب کنیم، واضح است که این کار با علامت هایی که پیشتر گفتیم ممکن نیست، چرا که آنها یک عدد یا یک مقدار صحیح را مقایسه می کنند، مثلا با عبارت مساوی تنها می توانیم بنویسیم:
*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
این دستور فقط ردیف یا ردیف هایی را که مقادیر نام در آن Arman باشد، انتخاب می کند، اما با استفاده از عبارتی دیگر در WHERE، این مشکل قابل حل است، این عبارت نیز LIKE و علامت  % (percent Wildcard) است، در مثال زیر با کاربرد آن بیشتر آشنا می شوید.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

وقتی پس از دو حرف Ar علامت % را قرار می دهیم، در واقع به دیتابیس می گوییم که فقط دو حرف اول برایمان اهمیت دارد و بقیه عبارت، هر چیزی می تواند باشد، دستور بالا اسامی زیر را برایمان انتخاب می کند.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

حال تصور کنید کاربری با نام فرضی PHPArmin نیز در بین کاربران خود داریم، دستور بالا این کاربر را انتخاب نمی کند، چرا که حروف ابتدایی عبارت  PHPArmin با Ar شروع نشده است، اما تغییر آن به صورت زیر، شامل این نوع اسامی نیز می شود.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

در واقع با افزودن یک % در ابتدا و انتهای عبارت مورد پرس و جو، دیتابیس چنین برداشت می کند که تنها برایمان وجود عبارت Ar در بین یک اسم مهم است و به ابتدا یا انتهای آن کاری ندارد.
ذکر این نکته ضروری است که در کار با  عبارت LIKE و علامت  %، باید دقت کنید که دامنه انتخاب ردیف ها را بیش از حد مورد انتظار، توسعه ندهید، برای اعداد نیز بهتر است از علامت های <=> به جای LIKE استفاده کنید.
در مباحث بعدی در رابطه با تکمیل WHERE با پارامترهای بیشتر و نحوه نمایش و دسته بندی اطلاعات، صحبت خواهیم کرد.
ثبت دامنه و فروش هاست، سامانه پیامک، طراحی سایت، خدمات شبکه
دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.
  | دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.

sms: 10004673  - 500021995
پاسخ
 سپاس شده توسط elshan


موضوعات مرتبط با این موضوع…
موضوع نویسنده پاسخ بازدید آخرین ارسال
  آموزش کار با پایگاه داده MySQL در PHP: othersnn 0 121 ۹۷/۱۰/۲۵، ۱۲:۳۳ عصر
آخرین ارسال: othersnn
  استفاده از JOIN و ساخت پرس و جوی ترکیبی در MySQL saberi 0 1,228 ۹۴/۶/۲۳، ۰۸:۱۴ عصر
آخرین ارسال: saberi
  حذف مقادیر از MySQL با دستور DELETE saberi 0 1,005 ۹۴/۶/۲۳، ۰۷:۵۹ عصر
آخرین ارسال: saberi
  به روز رسانی ردیف ها در MySQL با UPDATE saberi 0 1,033 ۹۴/۶/۲۳، ۰۷:۵۳ عصر
آخرین ارسال: saberi
  توابع تجمعی (Aggregate Functions) در MySQL saberi 0 1,061 ۹۴/۶/۲۳، ۰۷:۴۳ عصر
آخرین ارسال: saberi
  استفاده از ORDER و GROUP در MySQL saberi 0 931 ۹۴/۶/۲۳، ۰۷:۳۶ عصر
آخرین ارسال: saberi
  انتخاب ردیف ها با دستور SELECT FROM در MySQL saberi 0 996 ۹۴/۶/۲۳، ۰۷:۲۵ عصر
آخرین ارسال: saberi
  نحوه ذخیره کردن اطلاعات با دستور INSERT در MySQL saberi 0 1,056 ۹۴/۶/۲۳، ۰۷:۲۱ عصر
آخرین ارسال: saberi
  نگاهی به MySQL، پرکاربردترین سیستم مدیریت پایگاه داده saberi 0 1,185 ۹۴/۶/۲۳، ۰۷:۱۸ عصر
آخرین ارسال: saberi
  ساخت دیتابیس، جدول و ردیف با دستور CREATE در MySQL saberi 0 1,280 ۹۴/۶/۲۳، ۰۷:۱۵ عصر
آخرین ارسال: saberi

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان