1

Тема: Чайнику нужен совет...

Запрос:
$result = mysql_query("SELECT MAX(tissa) FROM bir_cr WHERE (active='yes' AND buysell='buy')");
не срабатывает по одному из WHERE, хотя должно при обязательном условии active='yes' и buysell='buy'
Что делаю не так?

2

Re: Чайнику нужен совет...

lokov
AND означает, что оба условия должны выполняться. Перепишите c OR так:

$result = mysql_query("SELECT MAX(tissa) FROM bir_cr WHERE active='yes' OR buysell='buy'");

3 (изменено: lokov, 2009-03-16 17:17:06)

Re: Чайнику нужен совет...

Мне и нужно выполнение двух обязательных условий, ситуация такая, в колонке tissa есть два одинаковых значения и так совпало что они оба получаются максимальными, но у одного стоит active='yes' а у другого active='no'. И запрос упорно не хочет искать вторую цифру с active='yes' и постоянно выдает другую. Уже думаю может с  MAX только одно условие можно?
по одному работает, а вместе нехотят...

4

Re: Чайнику нужен совет...

lokov
Посмотрите тип поля tissa. Если он текстовый, но содержит целое или дробное число, то необходима конвертация с помощью функции CAST().

5

Re: Чайнику нужен совет...

`id` int(11) NOT NULL auto_increment,
  `ownuid` int(11) default NULL,
  `kol` int(11) default NULL,
  `sum` varchar(10) default '0',
  `tissa` varchar(10) default '0',
  `active` enum('yes','no') default 'no',
  `buysell` enum('buy','sell') default NULL,

6

Re: Чайнику нужен совет...

lokov
Если в поле tissa целое число с возможными отрицательными значениями, то так:

$result = mysql_query("SELECT MAX(CAST(`tissa` AS SIGNED)) FROM `bir_cr` WHERE `active`='yes' OR `buysell`='buy'");

Если в поле tissa целое число без отрицательных значений, то так:

$result = mysql_query("SELECT MAX(CAST(`tissa` AS UNSIGNED)) FROM `bir_cr` WHERE `active`='yes' OR `buysell`='buy'");

Если в поле tissa дробное число, то так (следует прописать в DECIMAL количество символов в числе и количество символов после запятой):

$result = mysql_query("SELECT MAX(CAST(`tissa` AS DECIMAL(10,2))) FROM `bir_cr` WHERE `active`='yes' OR `buysell`='buy'");

7

Re: Чайнику нужен совет...

Ничего у меня так и не вышло, не видит запрос условия active='yes', пробовал различные варианты, даже по советам специалистов замену поля tissa и на float, и на double
Вышел из положения запросом:
$result = mysql_query("SELECT * FROM bir_cr WHERE (active='yes' AND buysell='buy')");
и последующей php обработкой