여러 변수 ID에 대해 여러 개의 정적 값 삽입
일부 뒷이야기(내 질문과 직접적인 관련은 없지만 다른 사람이 내 방법을 사용할 수 있음
저는 워드프레스 v3.9.1에서 Advanced Custom Fields 플러그인을 사용하여 작업하고 있습니다.WordPress에서 필요에 따라 포맷된 이전 데이터베이스에서 사용자 지정 값의 CSV 파일(WP Ultimate CSV Importer 플러그인 사용, 무료 버전)을 가져왔습니다(ACF Repeater Fields).플러그인은 훌륭하지만 아직 많은 데이터를 가져올 수 있는 좋은 방법은 없습니다.
리피터 필드는 다음과 같이 데이터베이스에 저장됩니다.
meta_id post_id meta_key meta_value
3894 4697 beds 2
3895 4697 _beds field_53bcfe244a98d
4051 4697 _beds_0_other field_53c2273053218
4050 4697 beds_0_other 1
4051 4697 _beds_1_other field_53c2273053218
4050 4697 beds_1_other 3
5894 4698 beds 2
5895 4698 _beds field_53bcfe244a98d
5051 4698 _beds_0_other field_53c2273053218
5050 4698 beds_0_other 1
5051 4698 _beds_1_other field_53c2273053218
5050 4698 beds_1_other 3
즉, 각 post_id에 대해 "beds"라는 하나의 리피터 필드가 있습니다."In" 리피터 필드는 1개의 필드이며, 두 번 반복됩니다.각 필드에는 두 개의 데이터베이스 항목(필드 참조(저장 필드 관리에 사용됨)과 값이 있습니다.설정이 직관적이지는 않지만 WordPress의 기본 테이블 시스템을 중심으로 설계되었습니다.
기출문제
현재 이전 데이터베이스에서 가져온 필드는 다음과 같습니다.
meta_id post_id meta_key meta_value
#### 4697 beds 2
#### 4697 beds_0_other 1
#### 4697 beds_1_other 3
#### 4698 beds 2
#### 4698 beds_0_other 1
#### 4698 beds_1_other 3
추가할 것이 있습니다.
meta_id post_id meta_key meta_value
#### 4697 _beds field_53bcfe244a98d
#### 4697 _beds_1_other field_53c2273053218
#### 4697 _beds_0_other field_53c2273053218
#### 4698 _beds field_53bcfe244a98d
#### 4698 _beds_1_other field_53c2273053218
#### 4698 _beds_0_other field_53c2273053218
meta_key 및 meta_value는 정적입니다. 필드가 생성된 후에는 삭제할 때까지 동일한 필드_##를 유지합니다.meta_id는 자동 증분입니다.
문제는 제가 200개 이상의 post_id 값을 가지고 있고, 각각은 50개의 정적 항목이 필요하다는 것입니다 - 그것을 하드 코딩하고 싶지 않습니다.다음을 사용하여 필요한 ID를 선택할 수 있습니다.
SELECT DISTINCT ID
FROM `wp_posts`
WHERE post_type = "community"
// Returns:
post_id
4697
4698
요컨대
다음을 수행하려면 어떻게 해야 합니까?
INSERT INTO `table` (`meta_id`, `post_id`, `meta_key`, `meta_value`)
VALUES
// foreach related distinct ID in wp_posts
(NULL, 'ID', "_beds", "field_53bcfe244a98d"),
(NULL, 'ID', "_beds_0_other", "field_53c2273053218"),
(NULL, 'ID', "_beds_1_other", "field_53c2273053218")
// end foreach
** 온도용액**
당분간은 PHP를 이용해서 모든 데이터를 버려서 PHPMyAdmin에 올렸습니다.삽입하는 PHP 루프를 작성할 수 있지만, 새로운 PHP 파일(또는 sql)을 업로드할 필요 없이 사용할 수 있는 MySQL 솔루션을 찾고 있습니다.
$ids = array("4697", "4698" );
echo '
INSERT INTO `table` (`meta_id`, `post_id`, `meta_value`, `meta_key`)
VALUES<br />';
foreach ($ids as $id){
echo '
(NULL, "'. $id .'", "1", "beds"),
(NULL, "'. $id .'", "field_53bcfe244a98d", "_beds"),
(NULL, "'. $id .'", "field_53c2273053218", "_beds_0_other"),
<br />';
}
가장 쉬운 방법은 숨겨진 사용자 정의 필드(선두 밑줄)를 메타 값과 함께 가져오는 것이었습니다.만약 당신이 데이터를 그냥 정리하고 싶다면 당신은 a를 사용할 수 있습니다.UNION SELECT
당신의 입력으로서INSERT
- 당신은 필요하지 않습니다.meta_id
, 자동으로 할당됩니다.이 SQL은 삽입 작업을 수행하기 전에 데이터가 이미 존재하는지 확인하지 않으므로 속이지 않도록 주의하십시오.
당신은 그것을 얻을 수 있습니다.post_id
것을 를 제공합니다.wp_postmeta
에 대해meta_key
s". 이용해서.post_id
할 수 .SELECT
statement). 되는 됩니다.INSERT
.
-- modify the wp_ prefix as needed
INSERT INTO `wp_postmeta` (`post_id`, `meta_key`, `meta_value`)
-- get "_beds" key/value for all entries with meta key of "beds"
SELECT post_id, '_beds' AS meta_key, 'field_53bcfe244a98d' AS meta_value
FROM wp_postmeta WHERE meta_key = 'beds'
UNION
-- get "_beds_0_other" key/value for all entries with meta key of "beds"
SELECT post_id, '_beds_0_other' AS meta_key, 'field_53c2273053218' AS meta_value
FROM wp_postmeta WHERE meta_key = 'beds'
UNION
-- get "_beds_1_other" key/value for all entries with meta key of "beds"
SELECT post_id, '_beds_1_other' AS meta_key, 'field_53c2273053218' AS meta_value
FROM wp_postmeta WHERE meta_key = 'beds'
-- order results (you can view what will be inserted if you run the SELECT without the INSERT)
ORDER BY post_id
가지 로 .INSERT
없는 UNION
.
언급URL : https://stackoverflow.com/questions/24730376/insert-multiple-static-values-for-multiple-variable-ids
'programing' 카테고리의 다른 글
Submit 버튼을 클릭한 후 비활성화하고 몇 초 후 다시 활성화합니다. (0) | 2023.10.04 |
---|---|
각도로 앵커 태그에 클릭 부착 (0) | 2023.10.04 |
SQL Server 데이터베이스 복원 오류 (0) | 2023.10.04 |
"text" 속성을 사용하여 파일을 정규화한 후 git가 마스터 브랜치를 체크아웃하고 캐리지 리턴을 제거하려면 어떻게 해야 합니까? (0) | 2023.10.04 |
판다의 데이터 프레임별 그룹화 및 열 유지 방법 (0) | 2023.10.04 |