แสดงบทความที่มีป้ายกำกับ SQL แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ SQL แสดงบทความทั้งหมด

14 กันยายน, 2557

[SQL] เรียงข้อมูลตามค่าที่รู้อยู่แล้วด้วย order by field

วันนี้ขออัพบล๊อกสั้นเก็บไว้กันลืมเอง


เรื่องมีอยู่ว่า ต้องการจะเขียน SQL สำหรับดึงข้อมูลตาม id ที่รู้อยู่แล้วชุดหนึ่งออกมา
ถ้าเรามีตัวแปร id พวกนั้นอยู่ก่อนแล้ว ก็จะเขียนได้ประมาณนี้
(เขียนด้วยภาษา php นะ)
$id = array(1, 2, 3, 10, 12);
$sql = '
    select *
    from Products
    where id in (' . implode(',', $id) . ')
';

โค้ดธรรมดามาก เอาไปรันก็จะได้ตัวแปร $sql ออกมาประมาณนี้
select *
from Products
where id in (1, 2, 3, 10, 12)
อ้าว! แล้วมันไม่ได้อะไรตรงไหน
ก็ผลที่รันออกมาหลังจากเอาไป execute แล้วมันได้ประมาณนี้น่ะสิ

|----|---------|
| id | name    |
|----|---------|
|  2 | pencil
  |
| 10 | books   |
|  3 | cup     |
|  1 | pen     |
| 12 | rubber  |

|----|---------|
เอ๊ะ ทำไมเลขมันไม่เรียงกันตามที่เราใส่ไปล่ะ?