X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> MySQL запрос в БД WordPress, прошу спецов помочь с MySQL
WhiteIce
WhiteIce
Topic Starter сообщение 20.11.2015, 2:20; Ответить: WhiteIce
Сообщение #1


Доброго времени суток, коллеги. Вопрос по MySQL.
В БД WP есть таблица postmeta , нужно вытянуть записи по значениям нескольких произвольных полей:


в столбце meta_key значение равно product_number И в столбце meta_value значение КАК '%$ключ%'
И
в столбце meta_key значение равно product_price И в столбце meta_value значение > 1000


Т.е. нужно вытянуть товары по двум произвольным полям одновременно - product_number и product_price.

Запрос например такого вида не работает:
Код
SELECT post_id
FROM postmeta
WHERE
meta_key = 'product_number'  AND  meta_value LIKE '%$keywords%'
AND  
meta_key = 'product_price' AND meta_value > 1000


Сообщение отредактировал WhiteIce - 20.11.2015, 2:20


--------------------
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
WebFox
WebFox
сообщение 20.11.2015, 5:09; Ответить: WebFox
Сообщение #2


Скобки пробовали?

SELECT post_id
FROM postmeta
WHERE
(meta_key = 'product_number' AND meta_value LIKE '%$keywords%')
AND
(meta_key = 'product_price' AND meta_value > 1000)

Результат запроса пустой или выпадает ошибка?


--------------------


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
SpaceX
SpaceX
сообщение 20.11.2015, 8:22; Ответить: SpaceX
Сообщение #3


конечно не будет работать :)

т.к. meta_key не может одновременно быть и product_number и product_price, а meta_value - '%$keywords%' и >1000

первое что приходит щас на ум выбрать сначала ID по одному из запросов, потом из этих ID второй запрос...

1) SELECT post_id FROM postmeta WHERE meta_key = 'product_number' AND meta_value LIKE '%$keywords%'

2) SELECT post_id FROM postmeta WHERE post_id IN (тут_ID_из_результата_предыдущего_запроса) AND meta_key = 'product_price' AND meta_value > 1000

но это решение на коленке.. уверен можно оптимизировать этот запрос в один..


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
mmkulikov
mmkulikov
сообщение 20.11.2015, 12:39; Ответить: mmkulikov
Сообщение #4


WhiteIce,
Код
SELECT post_id
FROM postmeta
WHERE
(meta_key = 'product_number'  AND  meta_value LIKE '%$keywords%' )
OR
(meta_key = 'product_price' AND meta_value > 1000)

Где-то так-с :pionertrava:


--------------------
Сдается, обращаться скайп avdesk-it-kmm
VPS от 5€


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
WhiteIce
WhiteIce
Topic Starter сообщение 20.11.2015, 18:32; Ответить: WhiteIce
Сообщение #5


WebFox,
Пусто без скобок.

mmkulikov
Вариант с OR выбирает когда подходит хотя бы одно условия, а нужно когда оба

SpaceX
А вот ваш подошел - сделал вложенный запрос

Код
SELECT post_id
FROM postmeta
WHERE
post_id IN (
    SELECT post_id
    FROM postmeta
    WHERE
    meta_key = 'product_number'  AND  meta_value LIKE '%$keywords%'
    )                
AND
meta_key = 'product_price' AND meta_value > 1000


посмотрю еще как оптимизировать, может окажется удобней просто результаты первого (общего) запроса обработать в php


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Overlord99
Overlord99
сообщение 23.11.2015, 19:02; Ответить: Overlord99
Сообщение #6


WhiteIce, если таблица postmeta большая, то вместо IN лучше воспользуйтесь EXISTS.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыПродам базу сайтов Wordpress в 16 миллионов доменов! Свежая сборка.
19 Boymaster 11126 Сегодня, 0:01
автор: Boymaster
Открытая тема (нет новых ответов) Нужен кодер, чтобы пофиксить ошибку Wordpress после переноса сайта
0 Alex-777 864 7.4.2024, 18:05
автор: Alex-777
Открытая тема (нет новых ответов) Запрос на бесплатные полезности
7 Tia2 1960 23.3.2024, 11:27
автор: Alexand3r
Открытая тема (нет новых ответов) Перенос сайта на CMS Wordpress
8 freeax 4959 10.3.2024, 14:58
автор: freeax
Открытая тема (нет новых ответов) Как настроить в WordPress для SEO оптимизации
8 rownong27 2475 2.3.2024, 12:59
автор: toplinks


 



RSS Текстовая версия Сейчас: 20.4.2024, 2:29
Дизайн