Почему не работает sql запрос?

Рейтинг: 0Ответов: 1Опубликовано: 25.10.2014

Есть таблица (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.
Но никак не работает...

Ответы

▲ 1Принят

Перепутали кавычки при совмещении строки:

AND c.`key` = concat(`fromdistrict_`

Получается обозначили строковое значение как имя поля или таблицы.