 |
จะดึงข้อมูลแบบ and และ or พร้อมกัน จะเขียนคำสั่ง sql ยังไงครับ |
|
 |
|
|
 |
 |
|
Code (SQL)
SELECT DISTINCT(HN)
FROM your_table
WHERE med_id IN('101','102','301','501','601')
|
 |
 |
 |
 |
Date :
2015-07-01 11:16:42 |
By :
{Cyberman} |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ไม่ได้ครับ เพราะมันจะเอา HN 44-144168 มาด้วยครับ
แต่ที่ต้องการแค่ 46-153450 และ 49-174349 เท่านั้นอ่ะครับ
|
 |
 |
 |
 |
Date :
2015-07-01 13:40:06 |
By :
Clamore |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
44-144168 มาด้วยอยู่แล้วครับ มันอยู่ใน med_id 301 ด้วยนิ
|
 |
 |
 |
 |
Date :
2015-07-01 13:47:37 |
By :
WIT |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ถ้า 44-144168 เป็นค่าคงที่ตลอด ก็ลองอย่างนี้ดูครับ
Code (SQL)
SELECT DISTINCT(HN)
FROM your_table
WHERE med_id IN('101','102','301','501','601') AND HN NOT IN('44-144168')
|
 |
 |
 |
 |
Date :
2015-07-01 13:49:45 |
By :
WiTT |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ใช่ครับถ้าดึงแบบปกติก็ได้อยู่ครับ
แต่มันมีข้อกำหนดครับว่า med_id=(101 and 102 and 301) or (501 and 601)
ซึ่งค่าที่ได้จะต้องมีแค่ 2 ค่า HN คือ 46-153450 และ 49-174349
อันนี้แหละครับที่ผมไม่รู้วิธีเขียนคำสั่งอ่ะครับ
|
 |
 |
 |
 |
Date :
2015-07-01 13:54:01 |
By :
Clamore |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (SQL)
select HN, group_concat(med_id) m_id from test group by HN
having (
concat(',', m_id , ',') like '%,101,%'
and concat(',', m_id , ',') like '%,102,%'
and concat(',', m_id , ',') like '%,301,%'
)
OR
(
concat(',', m_id , ',') like '%,501,%'
and concat(',', m_id , ',') like '%,601,%'
)
|
 |
 |
 |
 |
Date :
2015-07-04 07:50:51 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|