[前][次][番号順一覧][スレッド一覧]

mysql:13624

From: taki <taki <taki@xxxxxxxxxx>>
Date: Fri, 15 Dec 2006 14:05:16 +0900
Subject: [mysql 13624] Re: 値が null 以外のフィールドを抽出したいのですが

たきです。

テーブルデザインを変更できない。最適化再設計が出来ない場合など。
以下の方法で抽出してみてはどうでしょうか?強引ですが。

select
  concat(
    if(A is null, '', concat('', A)),
    if(B is null, '', concat(':',B)),
    if(C is null, '', concat(':',C)),
    if(D is null, '', concat(':',D)),
    if(E is null, '', concat(':',E)),
    if(F is null, '', concat(':',F)),
    ...
    if(Z is null, '', concat(':',Z))
  ) as catstr
  from word
  where A = '条件'
;

例ではcatstrというカラム名で結果が':'で区切られて返ります。
PHPのsplit(':', 結果)で分割すればいいかとおもいますが。
':'は'\t'でタブにも変更できますので適した文字で区切ってください。

皆さんも言われているように、これから設計して構築するのでしたら、
是非、データモデリングを再設計することをお勧めします。

On Fri, 15 Dec 2006 09:36:36 +0900 (JST)
syokora <ryuubi_1109@xxxxxxxxxx> wrote:

> テーブル名:word 
> A  B  C  D  F・・・フィールド 
> PC  IP  UDP null null 
> TCP  MAC ARP RIP  null 
> 
> として、PCという値のあるレコードを取り出す際に、null以外
> つまり、 フィールドA,B,Cのみを取り出したいのですが。

-- 
taki <taki@xxxxxxxxxx>



[前][次][番号順一覧][スレッド一覧]

     13616 2006-12-14 23:12 [syokora <ryuubi_1109] 値が null 以外のフィールドを抽出したいのですが
     13617 2006-12-15 09:13 ┣[Tatematsu <tatemax@x]                                       
     13618 2006-12-15 09:14 ┗[高橋政利 <takahashi@]                                       
     13619 2006-12-15 09:36  ┗[syokora <ryuubi_1109]                                     
     13620 2006-12-15 10:55   ┣[Tatematsu <tatemax@x]                                   
     13621 2006-12-15 11:38   ┣[土田 崇 <takatsuchid]                                   
     13622 2006-12-15 12:00   ┃┗[syokora <ryuubi_1109]                                 
     13623 2006-12-15 12:23   ┃ ┗[高橋政利 <takahashi@]                               
->   13624 2006-12-15 14:05   ┗[taki <taki@xxxxxxxxx]                                   
     13625 2006-12-16 17:26    ┗[bisuke <ryuubi_1109@]