Синтаксис WHERE
165 повідомлень
#15 років тому
Совершенно не силен в MySQL.Есть такой WHERE:
WHERE meta_key = 'ImageURL';
Как его переписать чтобы сказать мускулу: выбрать записи, где отсутствует meta_key ImageURL?
165 повідомлень
#15 років тому
Сам запрос$request = "SELECT ID, meta_key, post_id, post_status, post_type, meta_value
FROM $wpdb->posts, $wpdb->postmeta
WHERE post_status='publish' AND post_type='post' AND meta_key = 'ImageURL' AND ID=post_id";
Движок wordpress. Если испольщовать != то запрос все равно выбирает поля. потому что у одной записи может быть несколько meta_key. Аналогично не работает SELECT ! meta_key. В том плане что мета кей он не выбирает, а остальные поля очень даже.
16382 повідомлення
#15 років тому
Цитата ("adrianis"):Сам запрос
в таблице ЧТО? Надо знать из чего выбираем. Из чего выбираем и что надо выбрать.
165 повідомлень
#15 років тому
Цитата:в таблице ЧТО? Надо знать из чего выбираем. Из чего выбираем и что надо выбрать.
Строка. Я не силен в mysql, поэтому может не правильно тебя понимаю. Выбрать надо значения ID, meta_key, post_id, post_status, post_type, meta_value при истинных условиях в where. post_id, meta_value и meta_key хранятся в таблице postmeta
16382 повідомлення
#15 років тому
Есть набор строк, в каждой свое. надо отфильтровать их по определенному критерию. Чтобы отфильтровать то, что нужно надо знать ИЗ ЧЕГО фильтровать. Т.е. надо знать что есть, что должно быть на выходе и тогда уже строить условие которое из первого отфильтрует второе.
626 повідомлень
#15 років тому
Примерно так:"SELECT ID, meta_key, post_id, post_status, post_type, meta_value
FROM $wpdb->posts a, $wpdb->postmeta
WHERE post_status='publish' AND post_type='post'
AND NOT EXISTS(SELECT 1 FROM $wpdb->postmeta b WHERE b.post_id=a.ID AND meta_key = 'ImageURL');
Но тут могут быть нюансы когда совсем нет мета записей
16382 повідомлення
#15 років тому
Конкретно что надо выбрать? Вариант ferggren выберет все строки у которых meta_key НЕ ImageURLЧто надо выбрать?
626 повідомлень
#15 років тому
Цитата ("frig"):Конкретно что надо выбрать? Вариант ferggren выберет все строки у которых meta_key НЕ ImageURL
Что надо выбрать?
Тот вариант выбирает все строки, у которых хотя бы одна мета-запись не ImageURL, а надо выбрать те, у которых ни одна мета-запись не ImageURL
165 повідомлень
626 повідомлень
#15 років тому
Цитата ("adrianis"):Выбрать надо минимум ID.
И всё же попробуйте мой вариант
16382 повідомлення
#15 років тому
Задача все равно не ясна. Цитата:
то выбирется запись с ID минимум 11 раз.
Допишите в конце GROUP BY post_id