Какой SQL Query сделать простой поиск и замену
-
-
Если вы не знакомы с запросами,попробуйте плагин Search and Replace,http://wordpress.org/extend/plugins/search-and-replace/If you're not familiar with queries try the Search and Replace plugin, http://wordpress.org/extend/plugins/search-and-replace/
- 0
- 2011-01-26
- t31os
-
Почему бы не использовать функциональность WordPress для обновления URL-адреса? http://codex.wordpress.org/Moving_WordPress подробно обо всемWhy not use WordPress functionality to update the URL? http://codex.wordpress.org/Moving_WordPress details everything
- 0
- 2014-11-18
- Alex Older
-
Для этого есть плагин.Это позволяет удобно использовать бэкэнд,а также заменяет URL-адрес в пост-контенте и некоторых других полях,если вы хотите: https://wordpress.org/plugins/better-search-replace/There is a plugin for this. It allows comfortable use of the backend and also replaces the URL in the post-content and some other fields, if you want to: https://wordpress.org/plugins/better-search-replace/
- 0
- 2015-07-23
- simonthesorcerer
-
7 ответ
- голосов
-
- 2011-01-25
Таблица,в которой сохраняется ваш URL,- это wp_options.Вам следует обновить столбцы,которые используют URL-адрес вашего сайта:
UPDATE TABLE wp_options SET option_value = "new domain" WHERE option_name = "siteurl" UPDATE TABLE wp_options SET option_value = "new domain" WHERE option_name = "home"
Мне может не хватать какого-то значения,но всякий раз,когда вы снова выполняете этот процесс поиска/замены,вы можете заметить значения и таблицы,которые следует обновить,и добавить их в этот скрипт.
В WordPress Codex есть хорошее руководство по изменению URL-адреса сайта,может быть,это даже удобнее для вас: Изменение URL-адреса сайта
The table where your URL is saved is wp_options. You should do an update on the columns that use the URL for your site:
UPDATE TABLE wp_options SET option_value = "new domain" WHERE option_name = "siteurl" UPDATE TABLE wp_options SET option_value = "new domain" WHERE option_name = "home"
I might be missing some value, but whenever you do this find/replace process again, you can notice the values and tables that should be updated and add them to this script.
WordPress Codex has a nice guide on how to change a site URL, maybe that's even handier for you: Changing the Site URL
-
нет ли способа выполнить поиск/замену всей базы данных?Другими словами ... Я заметил,например,что мне нужно заменить URL-адреса в кучу разных мест,включая медиа-библиотеку .... Если бы был поиск/замена для всей базы данных по существу для каждого поля,это решило быпроблема.Спасибо за вашу помощьis there not a way to do a find/replace on the entire database? In other words... I noticed for example that I need to replace the URLs in a bunch of different locations including the media library.... If there was a find/replace for the entire database essentially for every field then this would solve the problem. Thanks for your help
- 1
- 2011-01-25
- NetConstructor.com
-
Посмотрите эту новую ссылку,которую я добавил в ответ.Я думаю,это был бы правильный путь.Check out that new link I added on the answer. I think that would be the way to go.
- 0
- 2011-01-25
- Fernando Briano
-
Это не сработает для сериализованных данных.Это может полностью нарушить некоторую конфигурацию темы.This will not work for serialized data. It might completely break some theme configuration.
- 2
- 2017-10-17
- Christian Lescuyer
-
- 2011-01-25
Варианты,публикации,содержание публикации и мета публикации:
UPDATE wp_options SET option_value = replace(option_value, 'http://olddomain.com', 'http://newdomain.com') WHERE option_name = 'home' OR option_name = 'siteurl'; UPDATE wp_posts SET guid = replace(guid, 'http://olddomain.com','http://newdomain.com'); UPDATE wp_posts SET post_content = replace(post_content, 'http://olddomain.com', 'http://newdomain.com'); UPDATE wp_postmeta SET meta_value = replace(meta_value, 'http://olddomain.com', 'http://newdomain.com');
См. также Поиск данных с помощьюphpMyAdmin и MySQL| Packt Publishing. А Search RegEx - хороший плагин для WP,чтобы иметь возможность для поиска и замены с помощью Grep во всех сообщениях и страницах.
Обновление от 16.06.2015: гораздо удобнее использовать инструмент,указанный в следующем предложении,поскольку простой поиск/замена,как указано выше,в дампе базы данных нарушит сериализованные данные./em> См. interconnectit.com WordPress Serialized PHP Search Replace Tool. Таким образом,вы не повредите сериализованные данные и вам не нужно будет запускать RegEx для содержимого публикации,поскольку сценарий межсоединения повсюду изменяет URL-адреса. Я постоянно использую этот инструмент для переноса сайтов в разные домены или просто для глобального изменения с http на https,чтобы принудительно использовать SSL без плагинов и изменить все URL-адреса в контенте,чтобы предотвратить ошибки небезопасных элементов.
Best to do options, posts, post content and post meta:
UPDATE wp_options SET option_value = replace(option_value, 'http://olddomain.com', 'http://newdomain.com') WHERE option_name = 'home' OR option_name = 'siteurl'; UPDATE wp_posts SET guid = replace(guid, 'http://olddomain.com','http://newdomain.com'); UPDATE wp_posts SET post_content = replace(post_content, 'http://olddomain.com', 'http://newdomain.com'); UPDATE wp_postmeta SET meta_value = replace(meta_value, 'http://olddomain.com', 'http://newdomain.com');
Also see Searching Data using phpMyAdmin and MySQL | Packt Publishing. And Search RegEx is a good WP plugin to be able to search and replace with Grep through all posts and pages.
Update 6/16/2015: Using the tool linked in the next sentence is much better, as a simple find/replace as above in a database dump will break serialized data. See interconnectit.com WordPress Serialized PHP Search Replace Tool. This way, you don't break serialized data and won't need to run RegEx on post content, as the interconnect script changes URLs everywhere. I use that tool all the time to migrate sites to different domains, or to simply do a global change from http to https to force SSL without plugins and change all URLs in content to prevent insecure element errors.
-
Никогда не меняйтеguid - даже при переходе на новый домен.Он используется для уникального идентификатора сообщения,так как идентификатор может измениться,если сообщения экспортируются/импортируются в новую базу данных.Во-первых,читатели RSS будут использовать GUID,чтобы определить,была ли прочитана конкретная статья.Смена руководства приведет к повторной публикации всех ваших статей.Don't ever change the guid - even if going to a new domain. It's used to uniquely ID the post as the ID can change if the posts are being exported/imported into a new database. For one thing, RSS readers will use the GUID to tell if a particular article has been read or not. Changing the guid will effectively republish all your articles.
- 2
- 2012-06-16
- Taylor Dewey
-
@taylordewey сказал: "Никогда не меняйте гид ..." Мусор.@taylordewey said: "Don't ever change the guid..." Rubbish.
- 0
- 2012-06-17
- markratledge
-
@songdogtech Постарайтесь объяснить * почему * это вздор?@songdogtech Care to explain *why* it is rubbish?
- 1
- 2013-03-06
- shea
-
Если вы меняете домены,у вас просто нет выбора,и вам придется менять GUID.Fallout от читателей RSS - это минимальная цена.If you're changing domains, you simply don't have a choice and have to change GUIDs. Fallout from RSS readers is a minimal price to pay.
- 0
- 2015-11-06
- markratledge
-
Зачем нужно менять GUID?Why would one _have_ to change the GUID?
- 1
- 2016-08-11
- kaiser
-
Несмотря на то,что GUID содержит URL-адрес,они не используются для создания ссылок (например,в меню) при обращении к сообщениям.И поэтому _не_ их менять вполне приемлемоDespite GUID's containing a url, they aren't used to create links (for example in menu's) when referencing posts. And so _not_ changing them is perfectly acceptable
- 0
- 2017-05-27
- Chris
-
Это не сработает для сериализованных данных.Это может полностью нарушить некоторую конфигурацию темы.Действительно,используйте такой инструмент,как Interconnect/IT’s.This will not work for serialized data. It might completely break some theme configuration. Indeed use a tool such as Interconnect/IT’s.
- 1
- 2017-10-17
- Christian Lescuyer
-
- 2011-08-02
Это отличный сценарий,который я использую,и он прекрасно работает с сериализованными массивами,которые WP использует для хранения параметров.Просто не забудьте удалить его со своего удаленного сервера,когда закончите,потому что это ОГРОМНАЯ угроза безопасности.
https://interconnectit.com/products/search-and-replace-for-wordpress-databases/
This is a great drop-in script that I use and it works beautifully with the serialized arrays that WP uses to store options. Just make sure to delete it from your remote server when you're done because it's a HUGE security risk.
https://interconnectit.com/products/search-and-replace-for-wordpress-databases/
-
Я не знаю,почему я получил -1.Этот сценарий намного лучше,чем оператор SQL.Пожалуйста,обратная связь?I don't know why I was -1'd. This script is much better than a SQL statement. Feedback please?
- 2
- 2011-08-03
- lancemonotone
-
инструмент,которым могут пользоваться люди,не знающие sql,огорчает тех,кто пишет на sqla tool that people who dont know sql can use, is upsetting to those who write in sql
- 1
- 2013-06-23
- Jon
-
- 2016-04-27
Для этого я использую WP-CLI ,потому что считаю его самым простым изаботится о сериализованных данных.
wp search-replace 'http://example.dev' 'http://example.com' --skip-columns=guid
Существует также опция,которая записывает ваши изменения в файл SQL вместо того,чтобы манипулировать реальной базой данных:
wp search-replace foo bar --export=database.sql
For this I use WP-CLI because I find it the easiest and it takes care of serialized data.
wp search-replace 'http://example.dev' 'http://example.com' --skip-columns=guid
There is also an option that writes your changes into an SQL file instead of manipulating the actual database:
wp search-replace foo bar --export=database.sql
-
безусловно,самое надежное и быстрое решение.wp-cli снова спасает положениеby far the most robust and fastest solution. wp-cli saves the day once again
- 1
- 2018-06-19
- ryanrain
-
- 2011-01-25
этого делать не обязательно,можно использовать относительные пути.
когда вы связываете что-то вместо subdomain.soemthing.com/image.jpg - используйте,например,/image.jpg
таким образом вы вообще не столкнетесь с проблемой.
в противном случае для оператора обновленияmysql вы можете использовать
update TABLE_NAME set FIELD_NAME = replace(FIELD_NAME, ‘find this string’, ‘replace found string with this string’);
you do not have to do this , you can use relative paths.
when you are linking something instead of subdomain.soemthing.com/image.jpg - use /image.jpg for example
like this you won't face the problem in the first place.
otherwise for a mysql update statement you can use
update TABLE_NAME set FIELD_NAME = replace(FIELD_NAME, ‘find this string’, ‘replace found string with this string’);
-
Спасибо ... да,я сделаю это в следующий раз.Оператор SQL находит замену во всей базе данных (включая все таблицы)?Thanks... yeah I will do that next time. The SQL statement does a find replacement on the entire database (including all tables)?
- 0
- 2011-01-25
- NetConstructor.com
-
@ NetConstructor.com Вышеупомянутый оператор SQL представляет собой общую команду MySQL для замены строки в определенном поле в определенной таблице.Если вы попытаетесь запустить этот оператор в точности так,как он был написан,это не сработает.Чтобы эта команда работала,вам нужно изменить TABLE_NAME & FIELD_NAME на реальное поле и таблицу,используемые WordPress.@NetConstructor.com The SQL statement mireille gave you above is the generic MySQL command for replacing a string in a specific field in a specific table. If you tried running this statement exactly as it was written, it wouldn't work. For this command to work, you'd need to change the TABLE_NAME & FIELD_NAME to a real field and table used by WordPress.
- 0
- 2011-01-26
- Manzabar
-
Также обратите внимание,что даже если вы хотите использовать относительные пути,многие части WordPress имеют тенденцию автоматически вставлять полные пути.Чтобы действительно заставить это работать,плагин вроде: https://wordpress.org/plugins/root-relative-urls/очень,очень полезенNote also that even if you desire to use relative paths, lots of parts of wordpress tend to auto-insert full paths. To really get this working a plugin like: https://wordpress.org/plugins/root-relative-urls/ is very, very helpful
- 0
- 2014-09-15
- benz001
-
- 2011-11-24
Чтобы изменить домен wordpress,что нам часто нужно,может быть,чтобы сайт работал с localhost: Это полный список запросов на обновление:
UPDATE wp_posts SET guid = replace(guid, 'http://olddomain.com','http://newdomain.com'); UPDATE wp_posts SET post_content = replace(post_content, 'http://olddomain.com', 'http://newdomain.com'); UPDATE wp_links SET link_url = replace(link_url, 'http://olddomain.com', 'http://newdomain.com'); UPDATE wp_links SET link_image = replace(link_image, 'http://olddomain.com', 'http://newdomain.com'); UPDATE wp_postmeta SET meta_value = replace(meta_value, 'http://olddomain.com', 'http://newdomain.com'); UPDATE wp_usermeta SET meta_value = replace(meta_value, 'http://olddomain.com', 'http://newdomain.com'); /*UPDATE wp_options SET option_value = replace(option_value, 'http://olddomain.com', 'http://newdomain.com') WHERE option_name = 'home' OR option_name = 'siteurl' OR option_name = 'widget_text' OR option_name = 'dashboard_widget_options';*/ UPDATE wp_options SET option_value = replace(option_value, 'http://olddomain.com', 'http://newdomain.com');
- При необходимости мы также должны добавить другие таблицы,которые не используются в WP по умолчанию.
ОБНОВЛЕНИЕ: Search Replace DB версия 3.1.0 - это удобный интерфейсный инструмент для разработчиков,который позволяет выполнять действия поиска/замены в базе данных,не повреждая сериализованные строки или объекты PHP.
To change the wordpress domain what we often need, may be to make the site live from localhost: This is a complete list of update queries:
UPDATE wp_posts SET guid = replace(guid, 'http://olddomain.com','http://newdomain.com'); UPDATE wp_posts SET post_content = replace(post_content, 'http://olddomain.com', 'http://newdomain.com'); UPDATE wp_links SET link_url = replace(link_url, 'http://olddomain.com', 'http://newdomain.com'); UPDATE wp_links SET link_image = replace(link_image, 'http://olddomain.com', 'http://newdomain.com'); UPDATE wp_postmeta SET meta_value = replace(meta_value, 'http://olddomain.com', 'http://newdomain.com'); UPDATE wp_usermeta SET meta_value = replace(meta_value, 'http://olddomain.com', 'http://newdomain.com'); /*UPDATE wp_options SET option_value = replace(option_value, 'http://olddomain.com', 'http://newdomain.com') WHERE option_name = 'home' OR option_name = 'siteurl' OR option_name = 'widget_text' OR option_name = 'dashboard_widget_options';*/ UPDATE wp_options SET option_value = replace(option_value, 'http://olddomain.com', 'http://newdomain.com');
- We have to also add other tables which are not default with WP if necessary.
UPDATE: Search Replace DB version 3.1.0 is a user-friendly, front-end tool for developers, that allows you to carry out database wide search/replace actions, that don't damage PHP serialized strings or objects.
-
Это не сработает для сериализованных данных.Это может полностью нарушить конфигурацию темы.This will not work for serialized data. It might completely break theme configuration.
- 2
- 2017-10-17
- Christian Lescuyer
-
- 2015-05-06
На самом деле,вам не нужно использовать SQL-запрос,просто некоторые настройки в файлах wp_config иfunctions.php в вашей теме.Проверьте эту тему в Wordpress Codex: https://codex.wordpress.org/Changing_The_Site_URL
Actually, you don't have to use a SQL query just some adjustments in wp_config and functions.php file in your theme. Check out this topic in Wordpress Codex: https://codex.wordpress.org/Changing_The_Site_URL
-
Это не так.К сожалению,WordPress хранит некоторые URL-адреса в базе данных в виде текста.This isn't correct. WordPress unfortunately stores some URL in the database as text.
- 1
- 2015-09-30
- s_ha_dum
Каждый раз,когда я создаю новый веб-сайт,я сначала создаю промежуточный сайт на субдомене,например stage.domain-name.com.
После того,как все работает правильно,я экспортирую базу данных,открываю ее в блокноте ++ и выполняю поиск/замену для "subdomain.domain-name.com" и заменяю его на "domain-name.com" ... наконец,я импортирую егов новую базу данных для действующего сайта.
У меня вопрос ... какой SQL-запрос мне нужно было бы запустить,если бы я просто хотел выполнить этот простой поиск/замену всей базы данных с помощьюphpmyadmin?
-CH