Я получаю ноль из запроса SQL в WordPress - PullRequest
0 голосов
/ 07 октября 2019

У меня проблема с попыткой получить данные из определенного meta_value в WordPress, то есть, когда я делаю «WHERE AND (PM.meta_key= 'webm' and PM.meta_value= 'Chaturbate')» в запросе sql. Когда я не использую, где и получить все данные, это обычно выглядит так:

enter image description here

SELECT P.ID,
    MAX(CASE WHEN PM.meta_key = 'nombrem' THEN PM.meta_value END) AS nombrem,
    MAX(CASE WHEN PM.meta_key = 'generom' THEN PM.meta_value END) AS generom,
    MAX(CASE WHEN PM.meta_key = 'tiempom' THEN PM.meta_value END) AS tiempom,
    MAX(CASE WHEN PM.meta_key = 'urlm'    THEN PM.meta_value END) AS urlm,
    MAX(CASE WHEN PM.meta_key = 'imagenm' THEN PM.meta_value END) AS imagenm
FROM 
    K1nG_posts AS P
    LEFT JOIN K1nG_postmeta AS PM ON P.ID = PM.post_id 
WHERE 
    P.post_type = 'post' 
    AND (P.post_status = 'publish' OR P.post_status = 'private')
GROUP BY P.ID, P.post_date

Но когда я использую "WHERE AND (PM.meta_key= 'webm' and PM.meta_value= 'Chaturbate') "в meta_value соответствующего meta_key, называемого" webm ", я получаю соответствующие записи, но без информации" select ", то есть null, как видно на изображении: enter image description here

SELECT P.ID,
    MAX(CASE WHEN PM.meta_key = 'nombrem' THEN PM.meta_value END) AS nombrem,
    MAX(CASE WHEN PM.meta_key = 'generom' THEN PM.meta_value END) AS generom,
    MAX(CASE WHEN PM.meta_key = 'tiempom' THEN PM.meta_value END) AS tiempom,
    MAX(CASE WHEN PM.meta_key = 'urlm'    THEN PM.meta_value END) AS urlm,
    MAX(CASE WHEN PM.meta_key = 'imagenm' THEN PM.meta_value END) AS imagenm
FROM 
    K1nG_posts AS P
    LEFT JOIN K1nG_postmeta AS PM ON P.ID = PM.post_id 
WHERE 
    P.post_type = 'post' 
    AND (P.post_status = 'publish' OR P.post_status = 'private')
    AND (PM.meta_key= 'webm' and PM.meta_value= 'Chaturbate')
GROUP BY P.ID, P.post_date

1 Ответ

0 голосов
/ 07 октября 2019

попробуйте использовать этот код

 WHERE 
   P.post_type = 'post' 
   AND P.post_status = 'publish' OR P.post_type = 'post' AND P.post_status = 'private'

это в основном принимает

P.post_type = 'post' AND P.post_status

как A и

P.post_type = 'post' AND P.post_status = 'private'

как B, так что это

A or B 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...