作者starjou (周星星)
看板Database
標題Re: [SQL ] 請問這個查詢的語法該怎麼下?(Sql Server)
時間Fri May 2 22:35:27 2008
※ 引述《adrianshum (Alien)》之銘言:
: ※ 引述《artingo (2008的三大目標)》之銘言:
: : 假設有張資料表如下,記錄每個人會說的語言:
: : Table: people_lan
: : name language
: : -------------------
: : Andy 中文
: : Andy 英文
: : Andy 法文
: : Bob 中文
: : Bob 法文
: : Candy 英文
: : 然後我要找出,"同時"會說中文與英文的人,這SQL句該怎麼下?
: : 也就是以這例子來說
: : 要能select出language欄同時有"中文"跟"英文"的Andy這個人
如果能更動欄位結構的話,我會用一個無號整數欄位來當各種 language 的 flag
如果用 8 位元的整數就能記載 8 種語言的狀況,big int 可以記 64 種,要是還不夠,
再加欄位。然後一個人只要有一筆資料。之後用位元運算來維護這個欄位,
這樣 select 也比較容易。
只是要另位做一份參照文件,第一個 bit 是什麼語言,第二個 bit 是什麼語言,
給維護程式的人看。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.80.138.232
推 artingo:這方法不錯,這樣要查精通多種語言的人就不用很多巢狀結構 05/03 09:25
推 JoeHorn:可惜 SQL 裡面的運算子不多,這樣作會多操 DB data I/O 。 05/03 11:02