Почему не работает sql запрос?
Есть таблица (wp_postmeta), структура такая:
id post_id key value
1 11 fromcity_1 Москва
2 11 fromdistrict_1 Садовое кольцо
3 11 fromcity_2 Воронеж
4 11 fromdistrict_1 Коминтерновский
5 13 fromcity_2 Воронеж
6 13 fromdistrict_1 Северный
И есть вот такой запрос:
SELECT `post_id`
FROM `wp_postmeta` AS p
WHERE p.`key` LIKE 'fromcity_%' AND p.`value` = 'Вороклини'
AND EXISTS (
SELECT 1
FROM wp_postmeta AS c
WHERE c.post_id = p.post_id
AND c.`key` = concat(`fromdistrict_`, substring(p.`key`, 9))
AND c.`value` = 'Центр'
)
Мне нужно, чтобы при выполнении запроса, если найдено fromcity_1
, где "1" это ID, в следующем запросе искать именно fromdistrict_1
, а не fromdistrict_2
, fromdistrict_3
или 4.
Но никак не работает...
Источник: Stack Overflow на русском