質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Q&A

解決済

1回答

2268閲覧

[MySQL]WordPressのテーブルから複数条件で情報を取得したい

entaro12345

総合スコア75

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

0グッド

0クリップ

投稿2020/10/16 09:01

前提・実現したいこと

WordPressで投稿されたデータから下記の条件で情報を取得したいです。

meta_idpost_idmeta_keymeta_value
11A
21B広い
31Csea
42A
52B大きい
62Cmountain

というデータがあり、そこから入力チェックで
meta_valueすべてが重複するデータをはじきたいです。

入力例)
①海 広い  sea → エラー
②海 大きい sea → OK

としたいのですが、どのようなクエリにすればよいのか困っております。

試したこと

post_id, meta_key, meta_valueでGroup化してやってみましたが、
やり方が違うのかうまくいかず・・・

select post_id, meta_key, meta_value
from (
select post_id, meta_key, meta_value
from wp_postmeta
where 1 = 1
group by post_id, meta_key, meta_value
) as tm
where 1 = 1
and (meta_key = 'A' and meta_value = '海')
and (meta_key = 'B' and meta_value = '広い')
and (meta_key = 'C' and meta_value = 'sea')

補足情報(FW/ツールのバージョンなど)

MySQL8

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

下記の方法でできました。

MySQL

1select 2 post_id 3 , meta_key 4 , meta_value 5 from ( 6 select 7 post_id 8 , meta_key 9 , meta_value 10 from wp_postmeta 11 where 1 = 1 12 and (meta_key = "A" and meta_value = "海") 13 or (meta_key = "B" and meta_value = "広い") 14 or (meta_key = "C" and meta_value = "sea") 15 and 1 = 1 16 group by post_id, meta_key, meta_value) as tm 17 where 1 = 1 18 group by post_id 19 having count(*) = 3

投稿2020/10/19 01:55

entaro12345

総合スコア75

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問