推文按鈕

收進你的MyShare個人書籤

2008年5月30日 星期五

不知如何下手的SQL查詢--Checkbox的多值

一直找不到答案,有人可以給點提示嗎?

前端表單傳來checkbox的多值,想在資料表的某欄位裡找出全部符合條件的筆數,該如何寫比較好呢?

資料表是這樣設計的:
場地表 Room
1. r_no:場地的流水號
2. r_name:場地名
ex.
r_no, r_name
1,A 場地
2,B 場地
3,C 場地

設備表 Facility
1. f_no 設備的流水號
2. f_r_no 設備對應所屬場地的流水號
3. f_item 設備的種類(如燈光、音響等)
ex.
f_no,f_r_no,f_item
1, 1, 燈光
2, 1, 音響
3, 2, 燈光
4, 2, 麥克風
5, 3, 麥克風
6, 1 ,白板
7, 1, 投影機
8, 2, 白板
9, 3, 投影機

前端搜尋表單的checkbox傳來設備代號f_item會有好幾個值,來查Facility表
舉例來說,使用者要找同時有白板、麥克風的場地,該怎麼下SQL語法呢?

2 則留言:

Horance Chou 提到...

select f_r_no from flist where f_name in ('燈光', '白板') group by f_r_no having count(f_r_no) >= 2;

最後的2要依同時需要的設備數修正, 同時查三個設備就要 >= 3. 這樣應該可行..參考看看 :)

Willy 提到...

Horance 的答案真棒....
我本來走投無路下還打算一一查出來再來做聯集...
現在加一個限制式就搞定了!
讚啦