Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Базы данных MySQL

  Все выпуски  

RFpro.ru: Базы данных MySQL


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты по данной тематике

Коцюрбенко Алексей aka Жерар
Статус: Советник
Рейтинг: 3992
∙ повысить рейтинг »
Абаянцев Юрий Леонидович aka Ayl
Статус: Профессионал
Рейтинг: 1761
∙ повысить рейтинг »
Чичерин Вадим Викторович
Статус: Профессионал
Рейтинг: 356
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Базы данных / MySQL

Номер выпуска:494
Дата выхода:04.03.2014, 18:29
Администратор рассылки:Абаянцев Юрий Леонидович aka Ayl (Профессионал)
Подписчиков / экспертов:65 / 33
Вопросов / ответов:3 / 10

Консультация # 106489: Добрый день! Интересует вопрос оператор лог. ИЛИ (OR) по идее дает 1 если хотя бы 1 единица. А в БД проверяет значение обоих операндов, по идее если первый в условии истинен то второго касаться проверка вообще не должна... Или это зависит от настройки СУБД?...


Консультация # 172490: Доброго времени суток! Делаю систему оценки качества товаров на MySQL и PHP. Что может быть проще, создать таблицу с голосами за товар и выводить средний рейтинг. Табличку для хранения голосов создал с полями what и vote (ID товара и оценка соответственно). Выбрать количество голосов и подсчитать сумму всех голосов, а также вычислить средн...
Консультация # 78268: Здравствуйте уважаемые эксперты. Очень важен один вопрос. Очень надо узнать на русском, как настроить связку apache, php, mysql. Которые поставяться отдельно в директории, а не так, как в Денвере. На агл языке я находил описание, но на русском так и не набрел. Заранее благодарю....

Консультация # 106489:

Добрый день!
Интересует вопрос оператор лог. ИЛИ (OR) по идее дает 1 если хотя бы 1 единица. А в БД проверяет значение обоих операндов, по идее если первый в условии истинен то второго касаться проверка вообще не должна...
Или это зависит от настройки СУБД?

Дата отправки: 23.10.2007, 15:03
Вопрос задал: Hoolio
Всего ответов: 4
Страница онлайн-консультации »


Консультирует Powoditch konstantin:

Здравствуйте, Hoolio!
Вы не совсем правы. Если, допустим, первый операнд 1, то проверка не доходит до второго. Если 0, то проверяется следующий, и т.д. То есть OR возвращает 1 только в случае того как в условии будет найдена первая 1. (имеется в виду булевы значения).

Консультировал: Powoditch konstantin
Дата отправки: 23.10.2007, 15:24
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Тесленко Евгений Алексеевич:

Здравствуйте, Hoolio!
В СУДБ логические выражения работают по обычной логике (AND, OR)
При этом если выражение состоит из нескольких операторов, проверку на истиность пройдут все.
Исключение составляет значение содержащее Null, при нем логические выражения ведут себя по правилам конкретной СУБД.

Консультировал: Тесленко Евгений Алексеевич
Дата отправки: 23.10.2007, 16:51
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Nomadfromx2007:

Здравствуйте, Hoolio!
Небольшое замечание по Oracle - проверка идет с конца и как только встретиться выражение, дающее TRUE, то остальные проверки уже не выполняются

Консультировал: Nomadfromx2007
Дата отправки: 24.10.2007, 05:38
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Челноков Виктор Альбертович (Студент):

Здравствуйте, Hoolio!

Наиболее часто лог. операторы используются в предложении where для выборки определенных значений и поэтому проверяются все выражения.
Пример:
tabl1
id int

select * from tabl1
where (id=3) or (id=7)
выбираются строки со значениями id 3 или 7
от настроек СУБД это не зависит.

Консультировал: Челноков Виктор Альбертович (Студент)
Дата отправки: 24.10.2007, 07:44
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 172490:

Доброго времени суток!
Делаю систему оценки качества товаров на MySQL и PHP.
Что может быть проще, создать таблицу с голосами за товар и выводить средний рейтинг.
Табличку для хранения голосов создал с полями what и vote (ID товара и оценка соответственно). Выбрать количество голосов и подсчитать сумму всех голосов, а также вычислить среднюю оценку можно простым запросом –

Код :
SELECT
* , SUM( `vote` ) AS `sum` , count( `vote` ) AS `CountVote` , SUM( `vote` ) / count( `vote` ) AS `rating` 
FROM `cms_rating` 
WHERE `what` = '2306'

Этот запрос выполняется достаточно быстро, но меня смущает то, что сумма голосов и их количество подсчитываются дважды.
Так же если нужно подсчитать рейтинг более чем для одного товара, то такой запрос не срабатывает. Если в условие WHERE перечислить все нужные идентификаторы товара, то рейтинг посчитается только для первого из них. (WHERE `what` = '1' OR `what` = '2' OR `what` = 'n').
Собственно вот и вопросы, как избавиться от двойного подсчёта полей `sum` и `CountVote`, а также как вычислить рейтинг нескольких товаров в одном запросе.

Дата отправки: 22.09.2009, 17:54
Вопрос задал: Cimus
Всего ответов: 3
Страница онлайн-консультации »


Консультирует vladisslav:

Здравствуйте, Cimus!
Чтобы избежать двойного вычисления, нужно использовать переменные. Чтобы посчитать для нескольких товаров (или всех), нужно использовать группировку.

Приложение:

Консультировал: vladisslav
Дата отправки: 22.09.2009, 18:32

5
Спасибо!
-----
Дата оценки: 22.09.2009, 22:06

Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Victor Pyrlik:

Здравствуйте, Cimus.

SELECT what, SUM(vote) AS sum_vote , count(vote) AS count_vote , AVG( vote ) AS avg_vote
FROM cms_rating
WHERE what = '2306'
GROUP BY what

или, для множества
WHERE what IN (2306,2307,2308 и т.д.)

URL >>ОБОБЩЕНИЕ ДАННЫХ С ПОМОЩЬЮ АГРЕГАТНЫХ ФУНКЦИЙ

Консультировал: Victor Pyrlik
Дата отправки: 22.09.2009, 19:02

5
Спасибо за отличный ответ и за ссылку!
-----
Дата оценки: 22.09.2009, 22:05

Рейтинг ответа:

НЕ одобряю +1 одобряю!


Консультирует lamed (Академик):

Здравствуйте, Cimus.

select
what,
count(vote) as CountVote,
sum(vote) as SumVote,
avg(vote) as rating
from cms_rating
group by what

Использовать слова типа 'sum' (в апострофах) очень не советую, хотя работать-то будет, но за этим словом закреплен и зарезервированный смысл. Остальные имена не являются зарезервированными и сформированы по всем правилам имен SQL, поэтому (и в Мануале, кстати) они используются без апострофов

Консультировал: lamed (Академик)
Дата отправки: 22.09.2009, 20:01

5
Спасибо!
-----
Дата оценки: 22.09.2009, 23:53

Рейтинг ответа:

НЕ одобряю +1 одобряю!

Консультация # 78268:

Здравствуйте уважаемые эксперты. Очень важен один вопрос.
Очень надо узнать на русском, как настроить связку apache, php, mysql. Которые поставяться отдельно в директории, а не так, как в Денвере. На агл языке я находил описание, но на русском так и не набрел.
Заранее благодарю.

Дата отправки: 14.03.2007, 16:44
Вопрос задал: Чинга
Всего ответов: 3
Страница онлайн-консультации »


Консультирует Кот Матроскин:

Здравствуйте, Чинга!
попробуйте обратится по этой ссылке
http://www.softtime.ru/info/articlephp.php?id_article=24
там Вы найдете нужный вам ответ

Консультировал: Кот Матроскин
Дата отправки: 14.03.2007, 16:55
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Gh0stik (Академик):

Здравствуйте, Чинга!

Могу посоветовать "Руководство установки связки Apache, PHP, MySQL, SMTP под Windows XP" (в формате CHM), как Вы и просили данный мануал на русском языке, так же в нем Вы сможе найти кучу ссылок на соответствующие ресурсы.

Смотрите прикрепленный файл.

Good Luck!!!

Консультировал: Gh0stik (Академик)
Дата отправки: 14.03.2007, 18:32
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Ерёмин А.А. (Специалист):

Здравствуйте, Чинга!
Есть у меня одна неплохая статья о том, как всё это дело установить и заставить работать. См. прикреплённый файл (~1 Мб). Надеюсь, что поможет. Описано довольно просто и доступно.

Консультировал: Ерёмин А.А. (Специалист)
Дата отправки: 14.03.2007, 18:40
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка  |  восстановить логин/пароль

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!



В избранное