Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > Как выбрать из базы MySQL значения по 2 параметрам


Автор: vovarich 20.1.2014, 01:03
Столкнулся со следующей проблемой. 
 Существует таблица MySQL из которой нужно сделать выборку по 2 -м столбцам.
 Тоесть цикл должен выбрать все значения где categ1= 'новинки' (это 1 столбец)
 и categ2= 'мультики' (это 2 столбец)

 Вот такой запрос делаю для выборки по одному столбцу, 
 $result=mysql_query("select * from product WHERE categ1= 'новинки' order by position DESC");

 а как сделать выборку по 2-м столбцам одновременно - не соображу.


 Мне нужно чтобы выбрало все товары в которых categ1= 'новинки' и плюс еще и все товары в которых categ2= 'мультики'

 Помогите пожалуйста.

Автор: igorold 20.1.2014, 06:15
Так и пиши:

Код

select * from product WHERE categ1= 'новинки' and categ2= 'мультики' order by position DESC


Не понял в чем проблема.

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Как-выбрать-из-базы-MySQL-значения-по-2-параметрам-id52dc4c4bae2015e8508b4567#findElement_E7045_52dc94beae2015770e175f13_0

Автор: vovarich 20.1.2014, 10:37
Цитата(igorold @ 20.1.2014,  06:15)
Так и пиши:

Код

select * from product WHERE categ1= 'новинки' and categ2= 'мультики' order by position DESC


Не понял в чем проблема.

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Как-выбрать-из-базы-MySQL-значения-по-2-параметрам-id52dc4c4bae2015e8508b4567#findElement_E7045_52dc94beae2015770e175f13_0 


В этом случае выведет только те значения, где товар отвечает двум условиям "новинки" и "мультики". А мне нужно чтобы выбрало все товары в которых categ1= 'новинки' и плюс еще и все товары в которых categ2= 'мультики'

Автор: vovarich 20.1.2014, 12:56
Всем спасибо за помощь. Вопрос решен с помощью оператора OR. По своей неопытности я думал что этот оператор выбирает "или то или то", а получается, что "и то  и то"

Автор: igorold 21.1.2014, 05:55
Вы же сами написали -
Цитата

   где categ1= 'новинки' (это 1 столбец)и categ2= 'мультики' (это 2 столбец)
   


Это и есть AND. Значит надо было и вопрос формулировать так: где categ1= 'новинки' или categ2= 'мультики'

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Как-выбрать-из-базы-MySQL-значения-по-2-параметрам-id52dc4c4bae2015e8508b4567#findElement_E7045_52dde19dae20150a5a1760d8_0

Автор: vovarich 6.2.2014, 00:06
Может подскажите почему из колонки categ2 не выбирает значения, а только из первых двух. 
 Может быть оператор OR нелья использовать дважды? И как это обойти.

 $res=mysql_query("select * from product WHERE categ= '$cat' OR categ1= '$cat' OR categ2= '$cat' order by position DESC");

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)