作者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
1F:推 artingo:这方法不错,这样要查精通多种语言的人就不用很多巢状结构 05/03 09:25
2F:推 JoeHorn:可惜 SQL 里面的运算子不多,这样作会多操 DB data I/O 。 05/03 11:02