#javascript #mysql #node.js
#javascript #mysql #node.js
Вопрос:
У меня есть многоузловая настройка WordPress, для которой я пытаюсь запустить скрипт узла, где он перебирает базу данных и выбирает все строки, которые содержат строку в post_content
столбце wp_{site-id}_post
таблицы, и извлекает идентификатор сайта из wp_blogs
таблицы на основе идентификатора wp_{site-id}_post
таблицы.
Итак, таблицы разбиваются следующим образом:
wp_blogs:
blog_id | site_id | domain | path | ...
85 | 1 | mydomain.com | /site | ...
wp_85_posts:
ID | post_author | post_date | post_date_gmt | post_content | post_title | ...
1 | 1 | ... | ... | this is post content | I'm a post |
Как я могу получить домен из, wp_blogs
where post_content
соответствует предложению LIKE, чтобы он знал, что post_content
находится в wp_85_posts
, и знал, что домен находится в wp_blogs
на основе blog_id
?
Мой текущий запрос:
SELECT path, blog_id, post_content FROM wp_blogs, wp_78_posts WHERE post_content LIKE '%content-to-search%'
но хотелось бы иметь возможность запускать запрос без необходимости указывать таблицы post каждого сайта (например, wp_78_posts).
Есть ли предложение, которое я могу использовать, чтобы избежать необходимости делать это?
Комментарии:
1. Нет. Там его нет.
2. Как говорит @Strawberry, это невозможно в SQL. Невозможно динамически указывать имена базы данных, таблицы или столбца.
3. Вместо того, чтобы иметь отдельную таблицу для каждого сайта, у вас должна быть одна
wp_posts
таблица соsite_id
столбцом. Затем вы можете присоединитьсяON wp_blogs.site_id = wp_posts.site_id
.