|
|
|
มีคำถามเกี่ยวกับ PHP และ MySQL ในการ SELECT ข้อมูล โดยต้องการให้เรียงลำดับผลลัพท์ตามจำนวนการซ้ำกันของฟิลด์หนึ่งๆ |
|
|
|
|
|
|
|
ผมอาจจะตั้งหัวเรื่องที่อ่านแล้วงง อาจจะสื่อความหมายผิด ต้องขออภัยด้วยนะครับ
คืออย่างนี้ครับ ผมมีฐานข้อมูลหนึ่ง ซึ่งมีตารางดังนี้
1. user เก็บข้อมูลลูกค้า
2. auction เก็บข้อมูลการประมูล
3. auction_history ที่เก็บประวัติที่เกิดขึ้นกับการประมูล
ข้อมูลที่ผมจะดึงอยู่ในตาราง auction_history ที่มีรูปแบบและตัวอย่างข้อมูลของตาราง ดังต่อไปนี้
auc_id FK auction.auc_id , user_id FK user.user_id , action , time
1 , 3 , bid , ...
1 , 7 , bid , ...
2 , 3 , bid , ...
1 , 3 , bid , ...
3 , 9 , bid , ...
1 , 9 , bid , ...
1 , 3 , bid , ...
3 , 7 , bid , ... เป็นต้น
ซึ่งข้อมูลที่ผมอยากได้คือ
1. ในการประมูลหนึ่งๆเนี่ย สมาชิกแต่ละคนกระทำการใดๆไปกี่ครั้ง
เช่นในการประมูลที่ 1 สมาชิกที่ action มากที่สุดตามลำดับคือ 3 , 7 , 9 เป็นต้น
2. จากข้อ 1 ถ้า query ออกมาแล้วจะพบว่ามี 3 row ที่มี auc_id=1 user_id=3
ถ้าผมต้องการเอาเฉพาะจำนวนการซ้ำกันเนี่ยต้องทำอย่างไรครับ
3. การประมูลใหนเป็นการประมูลที่มีความเปลี่ยนแปลงมากที่สุด
เช่นในข้อมูลตัวอย่างก็จะเป็น 1 , 3 , 2 เป็นต้น
ควรจะ Query ยังไงดีครับ หรือต้องเขียน PHP เพื่อเช็คที่ละ user_id หรือ auc_id เลย หรือจะต้องแก้ไขตารางอย่างไร
ปล. จริงๆในตาราง auction ผมมีฟิลด์ action counter อยู่แล้วไว้นับจำนวนเหตุการณ์เปลี่ยนแปลงที่เกิดขึ้นกับการประมูลนั้นๆ
แต่รู้สึกเหมือนกับว่าน่าจะมีวิธีอื่นที่ดีกว่านี้ในการแสดงผล
Tag : PHP, MySQL
|
|
|
|
|
|
Date :
2010-10-15 16:24:22 |
By :
Tar_Tw45 |
View :
995 |
Reply :
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2. จากข้อ 1 ถ้า query ออกมาแล้วจะพบว่ามี 3 row ที่มี auc_id=1 user_id=3
ถ้าผมต้องการเอาเฉพาะจำนวนการซ้ำกันเนี่ยต้องทำอย่างไรครับ
ตอบ select f_name from tb_name where auc_id=1 and user_id=3
3. การประมูลใหนเป็นการประมูลที่มีความเปลี่ยนแปลงมากที่สุด
เช่นในข้อมูลตัวอย่างก็จะเป็น 1 , 3 , 2 เป็นต้น
ตอบ คุณต้องทำการ count ของแต่ละ auc_id ก่อนครับ จากนั้นก็ เอามาเช็คอีกทีครับ
ส่วน ข้อ1 นั้น งง ครับ
|
|
|
|
|
Date :
2010-10-15 16:37:42 |
By :
kanchen |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|