0

wordpress テーブル (postmeta) に対してクエリを実行しています。テーブルにはキーと値があり、「key1」が「value1」に一致し、「key2」が「value2」に一致するすべての行を value2 順に並べたクエリが必要です。

テーブルには基本的に、id、postid、key、および value 列があります。

どこから始めればよいかさえわかりません。1 つの値を見つけることができます。つまり、key='featured' & value=true です。しかし、key='hits' の行の値で並べ替えられた上位 25 が必要です。つまり、それらの主要な行に対応するヒット キーの値が必要です。

これを行う方法がわかりません。

ティア

4

1 に答える 1

0

あなたが提供した限られた詳細でこれを行う方法を正確に言うことは困難です. ただし、キーと値のペアを返したい場合は、次を使用できます。

テーブルに複数回参加できます。

select p1.postid,
  p1.value Featured,
  p2.value Hits
from postmeta p1
left join postmeta p2
  on p1.postid = p2.postid
  and p2.key = 'hits'
where p1.key ='featured';

デモで SQL Fiddle を参照してください

または、式で集計関数を使用することもできますCASE(使用sum()すると数値が想定されます。文字列値にはmax()/を使用できます。min()

select postid,
  sum(case when `key` = 'featured' then value end) Featured,
  sum(case when `key` = 'hits' then value end) Hits
from postmeta
group by postid

デモで SQL Fiddle を参照してください

于 2013-02-12T02:29:14.353 に答える