1. مهمان گرامی، جهت ارسال پست، دانلود و سایر امکانات ویژه کاربران عضو، ثبت نام کنید.
    بستن اطلاعیه

آموزش MySQL > مرتب سازی اطلاعات خروجی پایگاه داده > عبارت Order By

شروع موضوع توسط hector2141 ‏26/7/13 در انجمن SQL

  1. کاربر ارشد

    تاریخ عضویت:
    ‏6/9/12
    ارسال ها:
    14,323
    تشکر شده:
    2,698
    امتیاز دستاورد:
    0
    حرفه:
    daneshjo
    عبارت Order By :

    در بخش آموزش دستور Select توضیح دادیم که این دستور برای استخراج و نمایش اطلاعات از یک جدول پایگاه داده استفاده میشود.
    اجرای دستور Select اطلاعات تمامی فیلدهای تعیین شده برای آن را بر اساس فیلد اول مرتب کرده و نمایش میدهد.اما ممکن است شما بخواهید اطلاعات را بر اساس مقدار یک فیلد دیگر غیر از فیلد اول و یا دو فیلد بصورت همزمان مرتب نمایید.
    برای این منظور بایستی پس از دستور Select نام فیلد یا دو فیلدی که میخواهید اطلاعات خروجی بر اساس آنها مرتب شوند را به ترتیب در مقابل عبارت Order By تعیین کنید.
    شکل کلی استفاده از عبارت Order By بصورت زیر است :
    [TABLE="class: ex"]
    [TR]
    [TD="class: prname"] Syntax [/TD]
    [TD="class: prdes, align: left"] < ? php
    SELECT column_name(s)
    FROM table_name
    Order By Column_Name(s) ASC | DESC
    ? >
    * column_name = نام فیلد مورد نظر
    * ASC = از کم به زیاد ، از پایین به بالا
    * DESC = از زیاد به کم ، از بالا به پایین
    مثال : "SELECT * FROM Student
    Order By Name " [/TD]
    [/TR]
    [/TABLE]
    مثال : در مثال زیر اطلاعات کلی دانشجویان را از جدول Student استخراج کرده و سپس بر اساس فیلد Name مرتب ساخته و در خروجی نمایش داده ایم :
    [TABLE="class: ex"]
    [TR]
    [TD="class: prname"] Example [/TD]
    [TD="class: prdes, align: left"] < ? php
    $My_Connection = mysql_connect ( " localhost " , " developer " , " Est1381 " ) ;
    if ( ! $My_Connection )
    {
    die( ' Could not connect : ' . mysql_error( ) ) ;
    }
    // در این دستور پایگاه داده مورد نظر را انتخاب کرده ایم
    mysql_select_db ( "my_db", $My_Connection );
    // Name با این دستور اطلاعات دانشجویان را بر اساس فیلد
    // مرتب سازی کرده ایم
    $ result = mysql_query ( "SELECT * FROM Student Order By Name " ) ;
    // سپس اسامی استخراج شده را با استفاده از یک حلقه نمایش داده ایم
    while($row = mysql_fetch_array($result))
    {
    echo $row['Name'];
    echo " " . $row['Family'];
    echo " " . $row['Age'];
    }
    mysql_close($con);
    ? > [/TD]
    [/TR]
    [/TABLE]
    نکته مهم : نکته : بصورت پیش فرض عبارت Order By اطلاعات را بصورت صعودی(کوچک به بزرگ) مرتب میکند.اگر بخواهید این روند معکوس شود بایستی پس از تمام فیلدها عبارت DESC را قرار دهید .
    تعیین دو فیلد برای مرتب سازی اطلاعلت خروجی :
    در هنگام استفاده از عبارت Order By میتوانید دو فیلد را برای مرتب سازی اطلاعات تعیین نمایید.برای این منظور باید نام دو فیلد خود را به ترتیب در مقابل عبارت Order By قرار داده و انها را با کاما از هم جدا کنید.
    مرتب سازی در این روش بر اساس فیلد اول صورت گرفته و در صورتی که فیلد اول دارای مقادیر یکسانی باشد ، آن رکوردها بر اساس فیلد دوم مرتب خواهند شد.
    شکل کلی استفاده از عبارت Order By در این حالت به صورت زیر است :
    [TABLE="class: ex"]
    [TR]
    [TD="class: prname"] Syntax [/TD]
    [TD="class: prdes, align: left"] < ? php
    SELECT column_name(s)
    FROM table_name
    Order By Column1 , Column2
    ? >
    * column1 = نام فیلد اول مورد نظر
    * column2 = نام فیلد دوم مورد نظر

    مثال : "SELECT * FROM Student
    Order By Name , Family " [/TD]
    [/TR]
    [/TABLE]