รวมเทคนิคต่าง ๆ ในการพัฒนาระบบ ที่น่าสนใจ รวมไว้ที่เดียว มีอะไรสอบถาม สามารถติดต่อผ่านช่องผ่าน Fanpage เราได้เลย

วันเสาร์ที่ 2 พฤษภาคม พ.ศ. 2563

MySQL เรียงลำดับตามตัวอักษร ภาษาไทย ตัวอย่างการใช้งานร่วมกับ PHP

Share:

ก่อนอื่นต้องทำการเชื่อมต่อฐานข้อมูล ถ้ายังทำไม่เป็นคลิกอ่านก่อนเลย  PHP connect SQL


ตัวอย่างตาราง


โดยปกติแล้ว เมื่อเราทำการ Query ข้อมูลมาจากฐานข้อมูล หากว่า Collation ของ Field ในฐานข้อมูลเป็น "utf8_general_ci" เหมือนในรูป เมื่อเราทำการ Query ข้อมูลออกมากจะไม่สามารถเรียงลำดับข้อมูล
ก - ฮ หรือ ฮ - ก ได้

แต่เรามีวิธีแก้ไขปัญหานี้ง่าย ๆ ด้วยคำสั่ง
CONVERT( 'field_name' USING tis620 ) ASC

ตัวอย่าง SQL สำหรับเรียงลำดับข้อมูล
ตัวอย่างการใช้งาน
SELECT
pv.`code`,
pv.name_th
FROM
config_area_province AS pv
ORDER BY
CONVERT( pv.name_th USING tis620 ) ASC
LIMIT 10

จาก SQL ด้านบนเราจะได้ผลลัพธ์ ตามรูปนี้

Note:
จะเห็นได้ว่าเราสามารถเรียงลำดับตัวอักษรภาษาไทย รวมทั้งสระต่างๆ ของภาไทยได้อย่างถูกต้อง


ตัวอย่างการใช้ CONVERT ในรูปแบบ Code PHP
$sql = "SELECT
pv.`code`,
pv.name_th
FROM
config_area_province AS pv
ORDER BY
CONVERT( pv.name_th USING tis620 ) ASC
LIMIT 10";

$result = mysqli_query($connect, $sql);

foreach ($result as $key => $detail){
    echo "รหัส ".$detail['code']." ชื่อ ".$detail['name_th']."<br>";
}

ผลลัพธ์

รหัส 81000000 ชื่อ กระบี่
รหัส 10000000 ชื่อ กรุงเทพมหานคร
รหัส 71000000 ชื่อ กาญจนบุรี
รหัส 46000000 ชื่อ กาฬสินธุ์
รหัส 62000000 ชื่อ กำแพงเพชร
รหัส 40000000 ชื่อ ขอนแก่น
รหัส 22000000 ชื่อ จันทบุรี
รหัส 24000000 ชื่อ ฉะเชิงเทรา
รหัส 20000000 ชื่อ ชลบุรี
รหัส 18000000 ชื่อ ชัยนาท



รวมเทคนิค PHP+SQL << คลิกที่นี่






Share:

บทความที่ได้รับความนิยม

Search

บทความอื่น ๆ