[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: mysql_query
uMnepaTop
Добрый вечер, дамы и господа))
Спросить хотелось бы, чем отличается:

SQL
$result = mysql_query("SELECT * FROM.................");

от
SQL
$query = "SELECT * FROM............";
$result = mysql_query($query);


Зачем писать 2 строки, если можно одной обойтись?)



Спустя 4 минуты, 45 секунд (3.11.2009 - 17:02) Grazor написал(а):
на один оператор присваивания больше)
кому-то так привычней, кому-то потом ещё надо с этой строкой работать

Спустя 37 секунд (3.11.2009 - 17:02) sergeiss написал(а):
Это для того, что в случае возникновения проблем ты можешь вывести сформированный запрос на экран, чтобы оценить причину его неправильности.
Во-вторых, если запрос сложный, то он может формироваться разными циклами, ифами, свичами и другими языковыми прибамбасами. Поэтому его лучше сначала сформировать, а потом запускать smile.gif

Спустя 1 минута, 24 секунды (3.11.2009 - 17:04) uMnepaTop написал(а):
Получается, если запрос сложный, лучше сначала в переменную его закинуть)
Понятно)

Спустя 11 минут, 46 секунд (3.11.2009 - 17:16) sergeiss написал(а):
В дополнение к предыдущему посту...
Под "сложным" я понимаю запрос типа приведенного ниже. Реальный запрос из реального скрипта, анализирует статистику. Время выполнения запроса и формирования страницы около 0.3 с.
Такой запрос просто так не сформируешь, тут же еще учитываются параметры, указанные пользователем.

SQL
select total_info.ne, total_info.tkg, total_info.total_days, bh_block_rate_avg, bh_block_rate_max, bh_block_rate_c , bh_all_busy_rate_avg, bh_all_busy_rate_max, bh_all_busy_rate_c , bh_asr_inc_avg, bh_asr_inc_max, bh_asr_inc_c , bh_asr_og_avg, bh_asr_og_max, bh_asr_og_c , bh_mht_inc_avg, bh_mht_inc_max, bh_mht_inc_c , bh_mht_og_avg, bh_mht_og_max, bh_mht_og_c , day_asr_avg, day_asr_max, day_asr_c , day_ner_avg, day_ner_max, day_ner_c , bh_asr_avg, bh_asr_max, bh_asr_c , bh_ner_avg, bh_ner_max, bh_ner_c

from (select trim(ne) as ne, trim(tkg) as tkg, count(ne) as total_days
from msc_tkg where bh_servicing > 0 and now() - report_day <= interval '30 day'
group by ne, tkg) total_info

left join (
( select trim(ne) as ne, trim(tkg) as tkg, avg(bh_block_rate) as bh_block_rate_avg, min(bh_block_rate) as bh_block_rate_min, max(bh_block_rate) as bh_block_rate_max, count(ne) as bh_block_rate_c
from msc_tkg where bh_servicing >0 and bh_block_rate > 0.1 and bh_block_rate < 110 and now() - report_day <= interval '30 day'
group by ne, tkg ) bh_block_rate_info

full join ( select trim(ne) as ne, trim(tkg) as tkg, avg(bh_all_busy_rate) as bh_all_busy_rate_avg, min(bh_all_busy_rate) as bh_all_busy_rate_min, max(bh_all_busy_rate) as bh_all_busy_rate_max, count(ne) as bh_all_busy_rate_c
from msc_tkg where bh_servicing >0 and bh_all_busy_rate > 0.1 and bh_all_busy_rate < 110 and now() - report_day <= interval '30 day'
group by ne, tkg ) bh_all_busy_rate_info
using( ne, tkg)

full join ( select trim(ne) as ne, trim(tkg) as tkg, avg(bh_asr_inc) as bh_asr_inc_avg, min(bh_asr_inc) as bh_asr_inc_min, max(bh_asr_inc) as bh_asr_inc_max, count(ne) as bh_asr_inc_c
from msc_tkg where bh_servicing >0 and bh_asr_inc > 0 and bh_asr_inc < 40 and now() - report_day <= interval '30 day'
group by ne, tkg ) bh_asr_inc_info
using( ne, tkg)

full join ( select trim(ne) as ne, trim(tkg) as tkg, avg(bh_asr_og) as bh_asr_og_avg, min(bh_asr_og) as bh_asr_og_min, max(bh_asr_og) as bh_asr_og_max, count(ne) as bh_asr_og_c
from msc_tkg where bh_servicing >0 and bh_asr_og > 0 and bh_asr_og < 40 and now() - report_day <= interval '30 day'
group by ne, tkg ) bh_asr_og_info
using( ne, tkg)

full join ( select trim(ne) as ne, trim(tkg) as tkg, avg(bh_mht_inc) as bh_mht_inc_avg, min(bh_mht_inc) as bh_mht_inc_min, max(bh_mht_inc) as bh_mht_inc_max, count(ne) as bh_mht_inc_c
from msc_tkg where bh_servicing >0 and bh_mht_inc > 0 and bh_mht_inc < 40 and now() - report_day <= interval '30 day'
group by ne, tkg ) bh_mht_inc_info
using( ne, tkg)

full join ( select trim(ne) as ne, trim(tkg) as tkg, avg(bh_mht_og) as bh_mht_og_avg, min(bh_mht_og) as bh_mht_og_min, max(bh_mht_og) as bh_mht_og_max, count(ne) as bh_mht_og_c
from msc_tkg where bh_servicing >0 and bh_mht_og > 0 and bh_mht_og < 40 and now() - report_day <= interval '30 day'
group by ne, tkg ) bh_mht_og_info
using( ne, tkg)

full join ( select trim(ne) as ne, trim(tkg) as tkg, avg(day_asr) as day_asr_avg, min(day_asr) as day_asr_min, max(day_asr) as day_asr_max, count(ne) as day_asr_c
from msc_tkg where bh_servicing >0 and day_asr > 0 and day_asr < 40 and now() - report_day <= interval '30 day'
group by ne, tkg ) day_asr_info
using( ne, tkg)

full join ( select trim(ne) as ne, trim(tkg) as tkg, avg(day_ner) as day_ner_avg, min(day_ner) as day_ner_min, max(day_ner) as day_ner_max, count(ne) as day_ner_c
from msc_tkg where bh_servicing >0 and day_ner > 0 and day_ner < 80 and now() - report_day <= interval '30 day'
group by ne, tkg ) day_ner_info
using( ne, tkg)

full join ( select trim(ne) as ne, trim(tkg) as tkg, avg(bh_asr) as bh_asr_avg, min(bh_asr) as bh_asr_min, max(bh_asr) as bh_asr_max, count(ne) as bh_asr_c
from msc_tkg where bh_servicing >0 and bh_asr > 0 and bh_asr < 40 and now() - report_day <= interval '30 day'
group by ne, tkg ) bh_asr_info
using( ne, tkg)

full join ( select trim(ne) as ne, trim(tkg) as tkg, avg(bh_ner) as bh_ner_avg, min(bh_ner) as bh_ner_min, max(bh_ner) as bh_ner_max, count(ne) as bh_ner_c
from msc_tkg where bh_servicing >0 and bh_ner > 0 and bh_ner < 80 and now() - report_day <= interval '30 day'
group by ne, tkg ) bh_ner_info
using( ne, tkg)
)
using (ne, tkg)

where bh_block_rate_c/total_days >= 0.5 or bh_all_busy_rate_c/total_days >= 0.5 or bh_asr_inc_c/total_days >= 0.5 or bh_asr_og_c/total_days >= 0.5 or bh_mht_inc_c/total_days >= 0.5 or bh_mht_og_c/total_days >= 0.5 or day_asr_c/total_days >= 0.5 or day_ner_c/total_days >= 0.5 or bh_asr_c/total_days >= 0.5 or bh_ner_c/total_days >= 0.5

order by ne, tkg

Спустя 10 минут, 22 секунды (3.11.2009 - 17:26) glock18 написал(а):
sergeiss
да лааан прибедняться smile.gif простой ведь запросик то smile.gif

Спустя 14 минут, 12 секунд (3.11.2009 - 17:40) sergeiss написал(а):
glock18 - дык... Это с какого боку смотреть smile.gif С точки зрения формирования запроса (о чем идет речь в топике) это непростой запрос. В том смысле, что его вот так вот в одну строку не сформируешь.
А если еще учесть, что некоторые части этого запроса могут быть исключены (согласно кнопочкам, нажатым юзером), то и запрос будет другой. То есть, его нужно формировать ДО отправки обработчку БД.

Кстати, небольшое примечание, чтобы никто не искал ошибок в запросе (глядя на него с точки зрения MySQL) smile.gif Этот запрос сделан для PostgreSQL.

Спустя 14 минут, 48 секунд (3.11.2009 - 17:55) Gabriel написал(а):
sergeiss
это что за монстр такой?О_о
сновa пострергу рекламируем?

Спустя 1 час, 36 минут, 3 секунды (3.11.2009 - 19:31) uMnepaTop написал(а):
афигеть.... вот это запросище...гг blink.gif

Спустя 13 минут, 16 секунд (3.11.2009 - 19:44) sergeiss написал(а):
Цитата (Gabriel @ 3.11.2009 - 18:55)
это что за монстр такой

Цитата (uMnepaTop @ 3.11.2009 - 20:31)
афигеть.... вот это запросище...

Как правильно заметил чуть ранее glock18, это
Цитата (glock18 @ 3.11.2009 - 18:26)
простой ведь запросик то
smile.gif

Он объёмный, но простой по сути. Я привел его как пример запроса, который нужно сначала сфомировать, записать в переменную, и только потом отдавать на обработку.

Цитата (Gabriel @ 3.11.2009 - 18:55)
сновa постгрю рекламируем?

Ага wink.gif

Спустя 12 минут, 42 секунды (3.11.2009 - 19:57) Gabriel написал(а):
sergeiss
мой самый большой запрос, это четверть того что ты написал. (теперь я уверен что я всееще ламер).
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.