2009年10月12日

[mysql 15032] Re: 「2つ以上含む」検索


bonです。

興味があったので調べてみました。

SELECT *
FROM `tableA`
WHERE (if(`columnA` LIKE '%||カモ||%',1,0)

+ if(`columnA` LIKE '%||ガチョウ||%',1,0)
+ if(`columnA` LIKE '%||スズメ||%',1,0)) >=2;
でどうでしょう?


Hisamitsu Issei <ds1i-hsmt@xxxxx> wrote:

> 久光と申します
>
>
>
> ||アヒル||カモ||ニワトリ||ガチョウ||スズメ||
>
> のように「||」を区切り文字として複数の値が入って
> いるカラムがあります。例えば「カモまたはガチョウ
> またはスズメが含まれるレコード」なら
>
> SELECT *
> FROM `tableA`
> WHERE `columnA` LIKE '%||カモ||%'
> OR `columnA` LIKE '%||ガチョウ||%'
> OR `columnA` LIKE '%||スズメ||%'
>
> で抽出できますが、「カモまたはガチョウまたはスズ
> メのうちどれか2つ以上が含まれるレコード」の抽出
> 方法がわかりません。
>
>  「カモが含まれていれば1なければ0、ガチョウが
> 含まれていれば1なければ0、スズメが含まれていれ
> ば1なければ0」という条件を組み込んで合計値が2
> 以上になるレコードを検索するという方法なのかなあ
> と考えたのですが具体的なSQLが思いつかなくて。
>
>  よろしくお願いいたします。
>


--
bon@xxxxx


投稿者 xml-rpc : 2009年10月12日 12:41
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/89356
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。