XMLファイルからwordpressデータベースにインポートしています。各投稿のメタ値としてインポートされた町と場所があります。
私は町と場所の事前定義リストを持っていないので、すべての場所を取得し(簡単なこと)、それらの場所内のすべての町を取得する必要があります(ここで問題が発生しています)
私が今持っているクエリは次のとおりです。
SELECT t1.meta_value
FROM wp_postmeta t1
INNER JOIN wp_postmeta t2 ON (t1.post_id = t2.post_id)
WHERE t2.meta_key = '_prop_loc'
AND t2.meta_value="Málaga"
AND t1.meta_key = '_prop_town'
GROUP BY t1.meta_value
たとえば、「マラガ」の場所にあるすべての町を取得しようとすると、このクエリを使用して終了しました。クエリが実行されるローカルホストでテストする
showing records 0 - 29 ( 101 total, total time 1.3289 seg)
時間が減少するまでにグループを取り出すと、もちろん行が重複します。オーダーASCで個別選択を使用すると、時間が再び上がります。
結果を順序付けしたいのですが、1 秒を超えるクエリは問題があります。
wp_postmeta
テーブル:
CREATE TABLE `wp_postmeta` (
`meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`post_id` bigint(20) unsigned NOT NULL DEFAULT '0',
`meta_key` varchar(255) DEFAULT NULL,
`meta_value` longtext,
PRIMARY KEY (`meta_id`),
KEY `post_id` (`post_id`),
KEY `meta_key` (`meta_key`)
) ENGINE=*** DEFAULT CHARSET=utf8;