php+mysqlについて質問する

WBOY
リリース: 2016-06-23 13:50:36
オリジナル
894 人が閲覧しました

テーブル内のデータをクエリするには、条件は uid in (1,2,3) です。その後、uid=1、2、または 3 を満たすすべてのクエリを実行できます。
各条件に対して項目を 1 つだけ選択するにはどうすればよいですか?
たとえば、uid 1、2、および 3 の項目が複数ある場合、SQL クエリでは、uid 1 の最初の項目、uid 2 の最初の項目、および uid 3 の最初の項目のみがクエリされます。


ディスカッションに返信 (解決策)

まず第一に、データには ID と UID が必要です

それぞれ 1、2、3 の UID の数をクエリします: (テーブル名が 'user であると仮定します) '、テーブルには id と uid の 2 つのフィールドしかありません)

select id,count(uid) from user group by uid having uid=1 or uid=2 or uid =3;
ログイン後にコピー


uid 1 を持つ最初の項目をクエリします:

select * from user where uid=1 limit 1;
ログイン後にコピー

クエリの結果セットをグループ化し、それぞれ 1 つの

select * from tbl_name a  where (select count(*) from tbl_name where uid=a.uid and id<a.id) = 1 and uid in (1,2,3)
ログイン後にコピー

を取得できます。条件は 1 つだけ取られます:
select * from tt where uid in (1,2,3) group by uid ;

select a.* from table a where 1> (select count(1) from table b where a.id = b.id と a.id > b.id ) と (1,2,3) の a.uid

ID によるグループ化テーブルから上位 1 つを選択

グループ化が可能

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート