複数の値の可能性とMySQLで行をフィルタリング

user2796914:

私はPHPとMySQLでの新たなんだと私はいくつかの問題を抱えています。 私にとっては、スクリーンショットで説明する方が簡単です

ここで例えば、私はそれが唯一のミセスMustermann私が試し示さなければならない。この場合... Wordpressの、JoomlaのとTYPO3のを扱うことができ、すべての人を、表示したいでしょうWHERE名=「Joomlaの」OR名前= 'WordPressのOR名前=」 TYPO3' 、それは私の悪い英語のための3つのいずれかで動作することができます人々は、...申し訳ありませんが示してい


EDIT

OPノート:提供例のデータはありません、ハードフリッピン問題のイメージを掲載する方法を「簡単」ではありません

 nachname    vorname  email                name        id
 ---------   -------  -------------------  ---------- --- 
 Mustermann  Mrs                           joomla     148 
 Mustermann  Mrs                           wordpress  148 
 Mustermann  Mrs                           typo3      148 
 Mustermann  Muster   [email protected]  wordpress  158 
 Mustermann  Muster   [email protected]  typo3      158

SELECT t.*
  FROM ( SELECT 'Mustermann' AS nachname,'Mrs' AS vorname,'' AS email,'joomla' AS NAME,'148' AS id
         UNION ALL SELECT 'Mustermann','Mrs','','wordpress','148'
         UNION ALL SELECT 'Mustermann','Mrs','','typo3','148'
         UNION ALL SELECT 'Mustermann','Muster','[email protected]','wordpress','158'
         UNION ALL SELECT 'Mustermann','Muster','[email protected]','typo3','158'
       ) t
GMB:

典型的な溶液が使用group by集計行同を有することnachname、および次いでフィルタにhaving句。

select nachname
from mytable
where name in ('joomla', 'wordpress', 'typo3')
group by id, nachname
having count(distinct name) = 3

私は想定idの一意の識別子であり、nachname私はそれを追加して、group by句。それは場合でなければ、それを削除して自由に感じます。

このクエリは、あなたに与えられるnachname3つのすべての値のために働いているのinリストを。

これは、より多くの(または少ない)を処理するために、クエリを適応させることは非常に簡単ですname修正することにより、S、inリストおよびターゲット・カウントを。

重複がない場合(nachname, name)、重複がテーブルには、使用することができますcount(*)の代わりに、count(distinct ...)より効率的になります。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=303143&siteId=1