SQL dotazy k nezaplacení

Náhrada jednoho řetězce za druhý v libovolné tabulce a poli


UPDATE table_name
SET field_name = replace( field_name, 'tohle_najdi', 'timhle_nahrad' );

k nezaplacení např. při přesunu webu na jinou adresu, lze tak nahradit absolutní URL obrázků, siteurl-homeurl nebo guide


UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://stara.cz', 'http://nova.cz');
UPDATE wp_posts SET guid = REPLACE(guid, 'http://stara.cz', 'http://nova.cz');
UPDATE wp_options SET option_value = REPLACE(option_value, 'http://stara.cz', 'http://nova.cz');
UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'http://stara.cz', 'http://nova.cz');

Tento způsob ale bohužel neřeší případ tzv. serializovaných dat Při migraci WP na jiné url je proto jistější použít nějaký specializovaný nástroj pro náhradu v serializovaných datech, např.:

http://pixelentity.com/wordpress-search-replace-domain/

https://interconnectit.com/products/search-and-replace-for-wordpress-databases/

nebo pluginy WP Migrate DB či Better Search Replace

WP Migrate DB migrates your database by running find & replace on URLs and file paths, handling serialized data, and saving an SQL file.

Někdy je potřeba jen přidat text na konec obsahového pole


UPDATE wp_posts SET post_content =
concat(post_content, ' ...') WHERE post_type = 'post';

nebo hromadně nahradit url uvedené komentátorem


UPDATE wp_comments
SET comment_author_url =
REPLACE( comment_author_url, 'http://www.stara.cz', 'http://www.nova.cz');

Změna hesla


UPDATE 'wp_users'
SET 'user_pass' = MD5('PASSWORD') WHERE 'user_login' ='admin' LIMIT 1;

Přesun příspěvků z jednoho autora na jiného


UPDATE wp_posts
SET post_author=NEW_AUTHOR_ID
WHERE post_author=OLD_AUTHOR_ID;

Vymazání revizí a souvisejících metainformací


DELETE a,b,c FROM wp_posts a
WHERE a.post_type = 'revision'
LEFT JOIN wp_term_relationships b
ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id);

Dávkové vymazání komentářů označených jako spam


DELETE from wp_comments WHERE comment_approved = '0';

Nalezení nevyužitých tagů


SELECT * From wp_terms wt
INNER JOIN wp_term_taxonomy wtt ON wt.term_id=wtt.term_id
WHERE wtt.taxonomy='post_tag' AND wtt.count=0;

Výpis e-mailů vašich komentátorů


SELECT DISTINCT comment_author_email
FROM wp_comments;

Vymazání všech tagů u příspěvků najednou


DELETE a,b,c
FROM
database.prefix_terms AS a
LEFT JOIN database.prefix_term_taxonomy AS c ON a.term_id = c.term_id
LEFT JOIN database.prefix_term_relationships AS b
ON b.term_taxonomy_id = c.term_taxonomy_id
WHERE (c.taxonomy = 'post_tag' AND c.count = 0);

Výpis všech nepotřebných *post meta* záznamů


SELECT * FROM wp_postmeta pm
LEFT JOIN wp_posts wp ON wp.ID = pm.post_id
WHERE wp.ID IS NULL;

Hromadné vypnutí komentářů u starších příspěvků


UPDATE wp_posts SET comment_status = 'closed'
WHERE post_date < '2009-01-01' AND post_status = 'publish';

Deaktivace všech pluginů


UPDATE wp_options SET option_value = '' WHERE option_name = 'active_plugins';

Zdroj:

http://www.catswhocode.com/blog/wordpress-10-life-saving-sql-queries

http://www.onextrapixel.com/2010/01/30/13-useful-wordpress-sql-queries-you-wish-you-knew-earlier/