|
|
|
มีปัญหาเกี่ยวกับ Query MySQL ครับ โดยมีเงื่อนไขซ้อนกัน |
|
|
|
|
|
|
|
ยากจังเลย
|
ประวัติการแก้ไข 2012-09-06 14:54:03
|
|
|
|
Date :
2012-09-06 14:47:09 |
By :
sambrazil |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมก็งงกับคำถามของคุณเหมือนกันนะครับ ....
ผมเข้าใจว่า....
1. ต้องการหาข้อมูลที่สูงสุด 2 อันดับแรก
2. ต้องการให้แสดงได้ตามเงื่อนไขฟิลดิ์ customer ด้วยว่าต้องการอะไรใช่มั้ยครับ
เพราะฉะนั้นในตัวอย่างจะต้องได้ข้อมูลคือ ก 10 และ ข 9
โดยที่เงื่อนไขที่สองคือต้องการเลือกได้ว่าจะเอา ก หรือ ข (ซึ่งในที่นี้ทดสอบโดย ก)
ถ้าผมเข้าใจถูกต้อง ผลลัพธ์ทุกครั้งจะมีค่าเดียวที่แสดงออกมาใช่มั้ยครับ
โดยขึ้นอยู่กับเงื่อนไขที่ 2 ว่าต้องการอะไร......
SELECT * FROM (SELECT * FROM table_name ORDER BY value DESC LIMIT 2) as q1 WHERE q1.customer = 'ก'
ตามข้างบนนี้จะได้ค่าออกมา 1 ค่าหรืออาจจะไม่มีเลย ตามเงื่อนไข customer = 'ก'
ซึ่งเราสามารถเปลี่ยนตรงตัวอักษร 'ก' เป็นอะไรก็ได้ตามต้องการ
หลักการก็คือ เลือกข้อมูล 2 อันดับแรกออกมาก่อน แล้วค่อยเลือกตามเงื่อนไขที่ 2
|
ประวัติการแก้ไข 2012-09-06 16:44:55 2012-09-06 16:45:32 2012-09-06 16:46:13 2012-09-07 18:49:32
|
|
|
|
Date :
2012-09-06 16:44:00 |
By :
Songkram |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ต้องขอโทษด้วยคำถามอาจจะ งง เพราะผมอาจใช้ภาษาไทยไม่เก่ง แต่ขอบคุณทุกคำตอบครับ ^^
|
|
|
|
|
Date :
2012-09-07 14:57:14 |
By :
ผู้สงสัย |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Logic ง่าย ๆ ดูเหมือนยาก ขอบคุณคำแนะนำเพิ่มเติม จากคุณ Noom ครับ
SQL > Command Sub Selection
ของผมต้องการ Order by ซ้อนกัน 2 ครั้ง
SELECT * FROM (SELECT * FROM job WHERE `id_sector` = '1' AND `show` = 'yes' ORDER BY `id` DESC) AS JobOrder
ORDER BY `sort` DESC
https://www.thaicreate.com/php/forum/083430.html
|
|
|
|
|
Date :
2014-08-26 17:49:51 |
By :
NB |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|