2

カスタム フィールドに Wordpress ベースの SQL データベース ビルドがあります。

post_id、meta_key、meta_value の 3 つの列が接続されています。

meta_key は「name」と「age」、meta_value は「John」と「40」です。次のようになります。

╔═════════╦══════════╦════════════╗
║ POST_ID ║ META_KEY ║ META_VALUE ║
╠═════════╬══════════╬════════════╣
║ 559 ║ 名前 ║ ジョン ║
║ 559 ║ 年齢 ║ 40 ║
║ 699 ║ 名前 ║ ジョン ║
╚═════════╩══════════╩════════════╝

名前が John で年齢が 40 歳の全員を数える必要があります。これは select-statement で可能ですか?

4

2 に答える 2

1
SELECT COUNT(*) totalCOunt
FROM
(
  SELECT post_ID
  FROM table1
  WHERE (meta_key = 'Name'  AND meta_value = 'John') OR
        (meta_key = 'Age'  AND meta_value = '40')
  GROUP BY post_ID
  HAVING COUNT(*) = 2
) s
于 2012-12-09T01:18:21.423 に答える
0

私はあなたのフィドル・ジョンを盗んだ。

SELECT  a.meta_value,b.meta_value,count(*)
FROM TABLE1 a
inner join TABLE1 b on b.Post_ID = a.Post_ID
                  and a.meta_key = 'name'
where b.meta_key = 'age'
and a.meta_value = 'John'
and b.meta_value = 40
group by a.meta_value,b.meta_value

http://sqlfiddle.com/#!2/ebebb/2

そうそう、私はまた、投稿IDが名前と年齢を関連付けるものであると仮定しました。

于 2012-12-09T01:54:49.030 に答える