จากฐานข้อมูลมีดังนี้
1.แสดงหมายเลขลำดับของรายการที่แสดง
SELECT @row_number := @row_number +1 AS No, pid
FROM `lab1`, (SELECT @row_number:=0) AS t
WHERE LENGTH(pid)=13
ORDER BY pid
หมายเหตุ : ถ้ามีการ JOIN จะต้องใส่หลังการ JOIN ดังนี้(สีแดงเป็นส่วนที่แสดงสำดับ)
SELECT @row_number:=@row_number+1 AS No,
screen_person.fname,screen_person.moo ,sys_district.DISTRICT_NAME ,
sys_amphur.AMPHUR_NAME , sys_province.PROVINCE_NAME
FROM screen_person LEFT Join sys_district On screen_person.subdistrict_id =
sys_district.DISTRICT_ID LEFT Join sys_amphur On screen_person.district_id =
sys_amphur.AMPHUR_ID LEFT Join sys_province On screen_person.province_id =
sys_province.PROVINCE_ID ,
(SELECT @row_number:=0) AS t ORDER BY screen_person.pid
2.คำสั่ง GROUP BY ให้ได้รายการสุดท้าย
(ปกติ Group by จะรวมรายการจากหลายรายการตามเงื่อนไข
แต่จะแสดงผลได้เป็นรายการแรกเท่านั้น) หากต้องการให้แสดง
รายการสุดท้าย ทำดังนี้
(SELECT pid,chk_date,fbs
FROM
(select pid,chk_date,fbs from lab1 order by chk_date DESC) as check_date
GROUP BY pid)
3.การใช้ CASE WHEN สำหรับเปรียบเทียบค่ามากกว่าน้อยกว่า
CASE
WHEN t2.fbs<=120 THEN 'ระดับ 0'
WHEN t2.fbs<=150 THEN 'ระดับ 1'
WHEN t2.fbs<=180 THEN 'ระดับ 2'
WHEN t2.fbs<=220 THEN 'ระดับ 3'
END AS PT_GROUP
4.การใช้ CASE WHEN สำหรับเปรียบเทียบค่าเท่ากับ
CASE t2.fbs
WHEN '1' THEN 'ระดับ 0'
WHEN '2' THEN 'ระดับ 1'
WHEN '3' THEN 'ระดับ 2'
WHEN '4' THEN 'ระดับ 3'
END AS PT_GROUP
5.เลือกแสดงเฉพาะรายการสุดท้ายตามจำนวนที่ต้องการ
(ตย.แสดงเฉพาะ 6 รายการสุดท้าย)
SELECT *
FROM
(SELECT * FROM lab1 WHERE pid ='0000000000139' ORDER BY chk_date
DESC LIMIT 6) AS tbl
ORDER BY tbl.chk_date ASC
6. SQL update from one Table to anather based on a ID match
UPDATE
Sales_Import SI,RetrieveAccountNumber RAN
SET
SI.AccountNumber = RAN.AccountNumber
WHERE
SI.LeadID = RAN.LeadID
7.ความแตกต่างระหว่าง 2 คำสั่ง
$row = mysql_fetch_assoc($result); กับ $row=mysql_fetch_row($result);
โดยที่
mysql_fetch_assoc($result) จะสามารถอ้างอิงชื่อฟิวด์ได้โยตรง ดังนี้
$row = mysql_fetch_assoc($result);
$default_geo_id= $row['default_geo_id']; //ระบุชื่อฟิวด์ จะไม่กระทบเวลาลบหรือเพิ่มฟิวด์ใหม่
แต่
$row=mysql_fetch_row($result); จะอ้างอิงด้วยลำดับที่ของฟิวด์ ดังนี่
$row=mysql_fetch_row($result);
$default_geo_id= $row[5]; //ระบุ 5 เป็บลำดับที่ของฟิวด์ จะกระทบเวลาลบหรือเพิ่มฟิวด์ใหม่
ไม่มีความคิดเห็น:
แสดงความคิดเห็น