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@]