2013-02-27 4 views
0
UPDATE wp_postmeta 
set meta_value = 'a:1:{i:0;s:6:"Subbed";}' 
WHERE meta_key = 'episode_sdversion' 

이것은 기본적으로 내가 얻을 수있는 거리입니다. 이는 단순히 wp_postmeta 테이블을 업데이트하고 을 a:1:{i:0;s:6:"Subbed";}으로 설정하고 meta_keyepisode_sdversion 인 경우 괜찮습니다.여러 테이블에서 데이터를 가져 와서 열을 업데이트하십시오.

여기에 문제가 있습니다. 다른 WHERE 절을 검색하고 싶습니다. 그러나 "WHERE"을 얻으려면 여러 테이블에서 정보를 검색해야합니다.

첫 번째 단어 "Subbed"가있는 테이블 wp_terms 열 name에서 term_id 열의 ID를 가져옵니다. 그래서 나는이

SELECT term_id 
FROM `wp_terms` 
WHERE `name` LIKE '%Subbed %' 

그런 다음 당신은 그냥 테이블 wp_term_relationships 에서 검색이 term_id 값을 사용하고 object_idterm_taxonomy_id = whatever you just got from before에서 다음 열 term_taxonomy_id의 값과 동일한 있는지 확인하고 같은 문제가 해결 것 같아요. 그리고 그 object_id

나의 마지막 코드는 또한 내가 사용할 수있는이

UPDATE wp_postmeta 
set meta_value = 'a:1:{i:0;s:6:"Subbed";}' 
WHERE meta_key = 'episode_sdversion' 
AND WHERE post_id = the ID that I am trying to get from going through different tables 

유사 보일 것입니다 ... 내 두 번째 WHERE 절이 될 것됩니다 wp_postmetapost_id 열 동일한 것 WHERE meta_value = ''는 ... 그렇게 만 a:1:{i:0;s:6:"Subbed";}에 meta_value를 설정할 때 meta_value = '' 빈 ...

그래서 너희들은 다른 테이블에서 정보를 얻고 변수의 일종에 보관하고이를 참조하는 방법에 대한 아이디어가 있다면 최종 검색어에서 t 모자를 쓰거나 여러 개의 검색어를 결합하면 좋을까요?

답변

0

이것은 진절머리 나는 방법입니다. 누군가가 따라 와서 순수하게 결합 된 솔루션을 게시한다면이를 사용하십시오. 또한, 당신이 사용하는 모든 테이블을 간신히 해독 할 수 있으며, 정확히 당신이하려고하는 것은 이것이 당신의 마음을 읽는 최선의 노력입니다.

UPDATE wp_postmeta 
set meta_value = 'a:1:blahblbah' 
WHERE meta_key='episode_sdversion' 
    AND post_id in(SELECT post_id FROM wp_terms WHERE name like '%Subbed%'); 

당신은 당신이 당신의 하위 쿼리에 달성해야 할 것 같습니다 조인을 가지고 있지만, 귀하의 게시물에서 나는 그게 뭔지 알 수 없습니다. 여기에서 그것을 알아낼 수없는 경우, 다른 테이블에 대한 자세한 정보를 게시하지만, 같은 수 있습니다 : 나는 정보를 제공 할 수있는 최선의

UPDATE wp_postmeta 
set meta_value = 'a:1:blahblbah' 
WHERE meta_key='episode_sdversion' 
    AND post_id in(SELECT post_id 
    FROM wp_terms 
    JOIN OTHERTABLE on OTHERTABLE.PK=wp_terms.PK 
    WHERE name like '%Subbed%' and OTHERTABLE.WhateverColumn='whatevervalue'); 

. 즐겨.

0

동의합니다 - 귀하의 질문은 이해하기가 매우 어렵습니다. 테이블 구조, 샘플 데이터 및 원하는 출력을 게시 할 수 있다면 훨씬 쉽게 처리 할 수 ​​있습니다. 내가 제대로 귀하의 요구 사항을 이해하고있어 경우

그러나, 다음이 가까이 있어야 :

UPDATE wp_postmeta 
SET meta_value = 'a:1:{i:0;s:6:"Subbed";}' 
WHERE meta_key = 'episode_sdversion' AND 
    post_id IN (
     SELECT tr.object_id 
     FROM wp_terms t 
      JOIN wp_term_relationships tr ON t.term_id = tr.term_taxonomy_id 
     WHERE t.name LIKE '%Subbed %' 
    ) AND meta_value = '' 

이것은 또한 내 이해가 올바른지 작동 할 수 있습니다 :

UPDATE wp_postmeta pm 
    JOIN wp_term_relationships tr ON pm.post_id = tr.object_id 
    JOIN wp_terms t ON t.term_id = tr.term_taxonomy_id 
SET pm.meta_value = 'a:1:{i:0;s:6:"Subbed";}' 
WHERE pm.meta_key = 'episode_sdversion' 
    AND t.name LIKE '%Subbed %' 
    AND meta_value = '' 
관련 문제