Po krótce wyjaśnię wam strukturę bazy daych tego CMSa jeśli ktoś nie zna:
wp_posts - tabela z postami (zawiera odniesienia do wp_users)
wp_users - tabela z użytkownikami będącymi jednocześnie autorami postów
wp_comments - tabela z komentarzami, zawiera ID autora i ID elementu, w tym przypadku ID postu z wp_post
O co chodzi?
Dostałem bazę (nie wordpressa) gdzie w jednej tabeli były i posty i komentarze. Logika tego wyglądała tak, że jeśli powtarzały się elementy z takim samym post_title to ta z najmniejszą wartością post_date była postem a reszta komentarzami. O ile z wyodrębnieniem tych encji sobie poradziłem w następujący sposób:
-przeniosłem tabelę wp_posts do wp_posts_and_comments
-utworzyłem strukturę wp_posts
-właściwe posty przeniosłem kwerendą:
INSERT INTO wp_posts (SELECT * FROM wp_posts_and_comments GROUP BY post_title ORDER BY post_date ASC LIMIT 1)
Przeszło 32 000 z 35 000 rekordów. Pozostałe 3 000 to komentarze. Nie wiem niestety, jak je wydobyć z wp_posts_and_comments i własciwym INSERTem wrzucić do wp_comments tak, żeby miały przypisany właściwy ID posta i id autora.
Czy ktoś jest na tyle obcykany w SQLu żeby mógł mi klepnąć na to komendę? Kwerenda wklejajaca komentarze powinna ona wyglądać mniej więcej tak:
INSERT INTO `wp_comments` (`comment_ID`, `comment_post_ID`, `comment_author`, `comment_author_email`, `comment_author_url`, `comment_author_IP`, `comment_date`, `comment_date_gmt`, `comment_content`, `comment_karma`, `comment_approved`, `comment_agent`, `comment_type`, `comment_parent`, `user_id`) VALUES (1, (subkwerenda znajdująca ID posta z takim samym post_title), , 'naza_uzytkownika', '', '', '2015-04-06 09:54:46', '2015-04-06 07:54:46', 'tresc komentarza', 0, '1', '', '', 0, 0);
Nadal jednak nie wiem, jak wyszukac te 3 000 komentarzy czyli duplikatow post_title uszeregowanych wg daty rosnąco z wyjątkiem pierwszego.