2011-10-30 13 views
1

私のクライアントに、異なるカテゴリに同じ名前の投稿を公開するオプションを与える必要があります。 CMSは閉じられており、これ以上フィールドを追加することはできません... 投稿を同一のものとして識別するために使用できる予備フィールドはありますが、正確な投稿がロードされる状況はありません。私の場合は画像です)。Mysql - nullでない場合はdistinctを選択

私はクライアントがすべての同一の投稿に対して同じ「フィールド」を指定できると考えました。

問題は、フィールドのデフォルトがnullであることです。私は別名を使用する場合は、同じでない投稿(すべてデフォルト= null)から1つの結果しか得られません...

nullでない場合、別の「フィールド」を選択する方法はありますか?

私は、クエリ自体は非常に簡単です...

を探してみましたし、上記と試行錯誤が、それは私のために動作しませんでした...

SELECT id,introtext,publish_up,publish_down 
from #__content 
WHERE catid IN(936,937,940,959,972,988,991) AND state = 1 
    AND (publish_up = "0000-00-00 00:00:00" OR publish_up <= "2011-10-30 12:12:59") 
    AND (publish_down = "0000-00-00 00:00:00" OR publish_down >= "2011-10-30 12:12:59") 

--removed duplicated query 

は、任意の手掛かりを理解するだろうか道順... ありがとう! ヤニパン

答えて

1

どのフィールドがデフォルトでNULLですか?私はちょうどXという名前を付けます、あなたはそれに応じて変更することができます。

SELECT DISTINCT id,introtext,publish_up,publish_down,IFNULL(X,id) AS distinct_field 
from #__content 
WHERE catid IN(936,937,940,959,972,988,991) AND state = 1 
AND (publish_up = "0000-00-00 00:00:00" OR publish_up <= "2011-10-30 12:12:59") 
AND (publish_down = "0000-00-00 00:00:00" OR publish_down >= "2011-10-30 12:12:59") 

私はそれが正しいだ願っています!

+0

素晴らしいですね。私はIFNULLで聞いたことはありませんが、私は毎日何か新しいことを学ぶと思う:)私はそれを(私がオフィスに行くときに)しようとし、それがどのように行ったか教えてください。ありがとう! – Yanipan

+0

OK、それはちょっと動作しますが、結果は区別されません。つまり、フィールドがNULLでない場合はdistinct_fieldを取得しますが、DB内の各フィールドに対して同じ行を取得します。 NULLでないdistinct_fieldのそれぞれから1つ... – Yanipan

+0

introtextフィールドの値がNULLの行はありませんか? – wisefish

2
select introtext from #__content group by introtext where introtext is not null; 
+0

ここでは小さな間違いがあります:GROUP BY – wisefish

+0

の前にどこに行くのですか?ごめんなさい。私はこれを正確には得ていません...返事をありがとう! – Yanipan

関連する問題