ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingมีเรื่องรบกวน (อีกแล้ว) การ Select SQL
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: มีเรื่องรบกวน (อีกแล้ว) การ Select SQL  (อ่าน 1616 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
aon_cb
ก๊วนเสียว
*

พลังน้ำใจ: 2
ออฟไลน์ ออฟไลน์

กระทู้: 212



ดูรายละเอียด
« เมื่อ: 04 มีนาคม 2014, 18:14:29 »

เรื่องการ Select SQL ครับ


ตามภาพ คือผมจะจัดกลุ่ม col2 แล้วเอาทุกคอลัมน์มาแสดงภายใต้ col2 ควร select แบบไหนดีครับ
(รบกวนอีกแล้ว  :'()
บันทึกการเข้า
iLhay
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 411
ออฟไลน์ ออฟไลน์

กระทู้: 4,368



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 04 มีนาคม 2014, 18:52:59 »

ใช้ GROUP BY ฮะ
บันทึกการเข้า

Wordpress Hosting


Wordpress Hosting เริ่มต้นปีละ 790 บาท NVMe SSD เร็ว 9000MB/s เร็วกว่านี้ไม่มีอีกแล้ว
Cloud Server เริ่มต้นเพียงเดือนละ 159 บาท พร้อมใช้ภายใน 1 นาที ผ่านระบบอัตโนมัติมีทั้ง Linux / Windows / DirectAdmin
สอบถามข้อมูลและแจ้งปัญหา 02-105-4417 ตลอด 24 ชั่วโมง
aon_cb
ก๊วนเสียว
*

พลังน้ำใจ: 2
ออฟไลน์ ออฟไลน์

กระทู้: 212



ดูรายละเอียด
« ตอบ #2 เมื่อ: 04 มีนาคม 2014, 19:09:30 »

ข้อมูลในคอลัมน์ col2 มีหลายร้อย row ครับ ที่ไม่ซ้ำกัน ง่ายๆ คือเป็น category ซึ่งมีหลายร้อย category  จะเอามาจัดกลุ่มตาม category ครับ จะเขียนคำสั่งยังไงให้ไม่ต้องมา group by ทีละอัน
« แก้ไขครั้งสุดท้าย: 04 มีนาคม 2014, 19:12:17 โดย aon_cb » บันทึกการเข้า
technoclip
ก๊วนเสียว
*

พลังน้ำใจ: 14
ออฟไลน์ ออฟไลน์

กระทู้: 342



ดูรายละเอียด เว็บไซต์
« ตอบ #3 เมื่อ: 04 มีนาคม 2014, 21:59:07 »

ใช้คำสั่ง DISTINCT (คำสั่งใน mysql สำหรับเลือกค่าที่ซ้ำกันมาอันเดียว)

เช่น SELECT DISTINCT col2 FROM [Table-Name] WHERE เงื่อนไขอื่น ๆ ถ้ามี

ก็จะได้ data1-data4

หลังจากที่ได้ข้อมูลมาแล้วก็เอาข้อมูลที่ได้ไป วนลูป ข้อมูลทั้งหมดออกมาแสดงตามลำดับครับ (ในที่นี่อาจจะวนลูบ 4 รอบเลยทีเดียว)
เช่น SELECT * FROM [table-name] WHERE col2 = [record ที่ได้จากคำสั่ง distinct]

** ถ้าไม่อยากให้ server ทำงานหนักก้อเก็บข้อมูลทั้งหมดลง array แล้ววนลูบใน array แทน วนลูป จากฐานข้อมูลโดยตรงครับ


บันทึกการเข้า

kobkung
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 103
ออฟไลน์ ออฟไลน์

กระทู้: 1,312



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 05 มีนาคม 2014, 03:05:05 »

รันในเบส บน lan หรือรันบนเว็บล่ะ  บางทีผมเขียนไม่เหมือนกัน
บันทึกการเข้า

เราเป็นบริษัท รับทำเว็บไซต์ แก้เว็บเดิม เขียน Php+Mysql+jQuery+css+bootstrap  งานตามสั่ง ประสบการณ์ จะ 19 ปี ละจ้า
Smilephp.com รับทำเว็บไซต์บริษัท e-commerce + ระบบชำระเงิน paypal,ธนาคาร  เว็บบริษัท เว็บขายของ ระบบจอง เช่า เขียน PHP ได้ทุกแนว  ช่วงนี้เน้นรับงาน ERP ระบบเอกสารบริษัท ,บัญชี ,  Barcode, Stock , Warehouse , Logistic ติดต่อ 086-364-5262

งดตอบคนทำเว็บนอกลู่นอกทาง ไม่ทำเว็บ WP ปั่นแชร์ เว็บประมูล สคริปปั่นใดๆ ไม่ทำเว็บบอลและพ
aon_cb
ก๊วนเสียว
*

พลังน้ำใจ: 2
ออฟไลน์ ออฟไลน์

กระทู้: 212



ดูรายละเอียด
« ตอบ #5 เมื่อ: 06 มีนาคม 2014, 23:22:46 »

ใช้คำสั่ง DISTINCT (คำสั่งใน mysql สำหรับเลือกค่าที่ซ้ำกันมาอันเดียว)

เช่น SELECT DISTINCT col2 FROM [Table-Name] WHERE เงื่อนไขอื่น ๆ ถ้ามี

ก็จะได้ data1-data4

หลังจากที่ได้ข้อมูลมาแล้วก็เอาข้อมูลที่ได้ไป วนลูป ข้อมูลทั้งหมดออกมาแสดงตามลำดับครับ (ในที่นี่อาจจะวนลูบ 4 รอบเลยทีเดียว)
เช่น SELECT * FROM [table-name] WHERE col2 = [record ที่ได้จากคำสั่ง distinct]

** ถ้าไม่อยากให้ server ทำงานหนักก้อเก็บข้อมูลทั้งหมดลง array แล้ววนลูบใน array แทน วนลูป จากฐานข้อมูลโดยตรงครับ




ขอบคุณครับ
บันทึกการเข้า
aon_cb
ก๊วนเสียว
*

พลังน้ำใจ: 2
ออฟไลน์ ออฟไลน์

กระทู้: 212



ดูรายละเอียด
« ตอบ #6 เมื่อ: 06 มีนาคม 2014, 23:23:32 »

รันในเบส บน lan หรือรันบนเว็บล่ะ  บางทีผมเขียนไม่เหมือนกัน

รันบนเว็บครับ
บันทึกการเข้า
หน้า: [1]   ขึ้นบน
พิมพ์