作者diamondking (迷惘)
看板Database
标题Re: [SQL ] MYSQL如何组合唯一化?
时间Thu May 22 23:12:37 2008
※ 引述《zeSil (寂静西风)》之铭言:
: 使用版本 MySQL 5.0.51
: table1
: id group1 name1 type1
: 1 A aaa Write
: 2 A bbb Report
: 3 A ccc Read
: 4 B ddd Write
: 5 B eee Read
: 6 B fff Report
: 7 C ggg Write
: 将他们组合出来看他们组合类型是如何
: 我的SQL
(中略)
: 类似这样的结果
: 可是我想要的是
: Type1 Type2
: Write Report
: Write Read
: Report Read
: 意思是 (Write, Report) = (Report, Write)
: 这样MySQL可以办到吗@@?
1、栏位里如果是有限种类的列举值,最好不要用一串文字,
可以改成用数字代替。例如Read=1, Write=2, Report=3
(至於数字代表的单字,通常是另开一张Table去存放,有需要再Join)
2、要达到你说的目的,只要在where条件里多一项a.Type2<b.Type2即可。
(用大於也行)
3、如果不想改Table,可以投机取巧用Length(a.Type2)<Length(b.Type2),
因为刚好Write, Read, Report字数不一样
4、另外,如果再考虑有可能「等於」的情况,就改成
where a.Type2<b.Type2 or (a.Type2=b.Type2 and a.id<b.id)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.166.140.225
※ 编辑: diamondking 来自: 118.166.140.225 (05/22 23:16)
※ 编辑: diamondking 来自: 118.166.140.225 (05/22 23:22)