2012-03-30 4 views
1

フィールドの別個の部分文字列値を選択し、その選択内のcharのインスタンス数を数えようとしています。 私はthisの半分に答えるすばらしい投稿を見つけました。フィールドの異なる部分文字列値を選択し、その選択内の文字のインスタンス数を数えます。

これまでのところ、私はフィールド内のcharのインスタンスを数えることができます。今私が使用して文字列の一部を選択した場合は何でも難しい部分、:

SELECT DISTINCT SUBSTRING_INDEX(my_field, '-', -1) AS chunk 

この場合は私が唯一の文字列の最後の部分を選択しています(すべて「last'-後)。どのように私はチャンクにこの式を適用することができます(新しい文字列に「_」のインスタンスの数をカウントしようとしている:?

(LENGTH(chunk) - LENGTH(REPLACE(chunk, '_', '')))/LENGTH('_') 

私はそれが本当ではないとして、チャンクの操作をするためにHAVING使用することshoud知っていますフィールドが、どのように私は何かのように行うことができます。

SELECT DISTINCT SUBSTRING_INDEX(my_field, '-', -1) AS chunk, (LENGTH(chunk) - LENGTH(REPLACE(chunk, '_', '')))/LENGTH('_') AS total FROM my_field HAVING total < 2 

ここでの問題は、それがフィールドではありませんので、私は最後の部分に「チャンク」を使用できないことです。..

答えて

3

ここでの問題私は最後の部分で 'チャンク'を使うことができないD ..

SUBSTRING_INDEX(my_field、 ' - '、-1)との最後の部分に 'チャンク' を交換してください

が問題だかわかりませんか?

+0

編集:yea that works to :) – Eric

関連する問題