Вернуться   Форум SAPE.RU > Общие вопросы > Разработка и сопровождение сайтов

-->
Ответ
 
Опции темы
Старый 10.05.2009, 13:00   #1
Специалист
 
Аватар для Ulf
 
Регистрация: 05.05.2008
Адрес: Инопланетянин Я. Пиу пиу...
Сообщений: 266
Вес репутации: 202
Ulf - весьма и весьма положительная личностьUlf - весьма и весьма положительная личностьUlf - весьма и весьма положительная личность
Отправить сообщение для Ulf с помощью ICQ
По умолчанию Запрос к MySQL

Задача, подсчитать размер всех databases на серваке, реализую через скриптик на php, который берет значения из базы и пихает его в мой биллинг. Сам запрос:

PHP код:
mysqlSELECT SUM(data_length/1024)total_size_mb  FROM information_schema.tables WHERE table_schema 'BASE_NAME'
Проблема вот в чем, как оказалось - если таблица пустая, запрос возвращает NULL, как сделать так что бы вместо NULL возвращался 0? Необходимо сделать на уровне запроса. Насколько знаю, можно сделать через if, но чего-то мне с ним не подружиться...Может кто-нибудь подскажет?
Ulf вне форума   Ответить с цитированием
Старый 10.05.2009, 13:13   #2
Добрый модератор
 
Аватар для zhegloff
 
Регистрация: 09.07.2007
Адрес: глобус Украины
Сообщений: 27,600
Вес репутации: 1025
zhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущее
По умолчанию

никак.

просто исключите пустые таблицы из выборки.
__________________
Установка кода сапы от $9.95. Пишите в личку.
Правильный хостинг.
В личке бесплатно не отвечаю обычно.
zhegloff вне форума   Ответить с цитированием
Старый 10.05.2009, 19:39   #3
Специалист
 
Регистрация: 07.11.2008
Сообщений: 272
Вес репутации: 196
acp - весьма и весьма положительная личностьacp - весьма и весьма положительная личностьacp - весьма и весьма положительная личность
По умолчанию

Цитата:
Сообщение от zhegloff Посмотреть сообщение
никак.
ложь )) используй конструкцию в запросе IFNULL. В хелпе все отлично сказано - RTFM
acp вне форума   Ответить с цитированием
Старый 10.05.2009, 22:21   #4
Добрый модератор
 
Аватар для zhegloff
 
Регистрация: 09.07.2007
Адрес: глобус Украины
Сообщений: 27,600
Вес репутации: 1025
zhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущее
По умолчанию

Цитата:
Сообщение от acp Посмотреть сообщение
ложь )) используй конструкцию в запросе IFNULL. В хелпе все отлично сказано - RTFM
нафига юзать функции, если можно просто не включать пустые элементы в выборку?
__________________
Установка кода сапы от $9.95. Пишите в личку.
Правильный хостинг.
В личке бесплатно не отвечаю обычно.
zhegloff вне форума   Ответить с цитированием
Старый 11.05.2009, 09:16   #5
Специалист
 
Аватар для kaxart
 
Регистрация: 24.05.2008
Сообщений: 364
Вес репутации: 213
kaxart - за этого человека можно гордитсяkaxart - за этого человека можно гордитсяkaxart - за этого человека можно гордитсяkaxart - за этого человека можно гордитсяkaxart - за этого человека можно гордитсяkaxart - за этого человека можно гордитсяkaxart - за этого человека можно гордитсяkaxart - за этого человека можно гордитсяkaxart - за этого человека можно гордится
Отправить сообщение для kaxart с помощью ICQ
По умолчанию

Цитата:
Сообщение от Ulf Посмотреть сообщение
Проблема вот в чем, как оказалось - если таблица пустая, запрос возвращает NULL, как сделать так что бы вместо NULL возвращался 0? Необходимо сделать на уровне запроса. Насколько знаю, можно сделать через if, но чего-то мне с ним не подружиться...Может кто-нибудь подскажет?
PHP код:
<?php
$n
="NULL";//из запроса
if($n=="NULL")
    {
$n=0;}
echo 
"$n";//проверка
?>
kaxart вне форума   Ответить с цитированием
Старый 11.05.2009, 11:01   #6
Эксперт
 
Аватар для i58
 
Регистрация: 26.08.2007
Сообщений: 1,580
Вес репутации: 270
i58 - прекрасное будущееi58 - прекрасное будущееi58 - прекрасное будущееi58 - прекрасное будущееi58 - прекрасное будущееi58 - прекрасное будущееi58 - прекрасное будущееi58 - прекрасное будущееi58 - прекрасное будущееi58 - прекрасное будущееi58 - прекрасное будущее
По умолчанию

Цитата:
Сообщение от kaxart Посмотреть сообщение
PHP код:
И как это скрестить с запросом MySQL?
i58 вне форума   Ответить с цитированием
Старый 11.05.2009, 11:02   #7
Специалист
 
Регистрация: 05.06.2008
Адрес: Betelgeize
Сообщений: 247
Вес репутации: 204
edne - это имя известно всемedne - это имя известно всемedne - это имя известно всемedne - это имя известно всемedne - это имя известно всемedne - это имя известно всем
По умолчанию

where data_length is not null and data_length>0
edne вне форума   Ответить с цитированием
Старый 11.05.2009, 12:58   #8
Специалист
 
Аватар для Ulf
 
Регистрация: 05.05.2008
Адрес: Инопланетянин Я. Пиу пиу...
Сообщений: 266
Вес репутации: 202
Ulf - весьма и весьма положительная личностьUlf - весьма и весьма положительная личностьUlf - весьма и весьма положительная личность
Отправить сообщение для Ulf с помощью ICQ
По умолчанию

Всем спасибо запрос получился:
$command = "/bin/echo \"SELECT SUM(data_length/1024)total_size_mb FROM information_schema.tables WHERE table_schema = '$db'\" | sed 's/NULL/0/g'";

Ulf вне форума   Ответить с цитированием
Старый 11.05.2009, 13:30   #9
Специалист
 
Регистрация: 05.06.2008
Адрес: Betelgeize
Сообщений: 247
Вес репутации: 204
edne - это имя известно всемedne - это имя известно всемedne - это имя известно всемedne - это имя известно всемedne - это имя известно всемedne - это имя известно всем
По умолчанию

Цитата:
Сообщение от Ulf Посмотреть сообщение
Всем спасибо запрос получился
Можно ещё через вайн какуюнть дельфовую приблуду вызвать.
Вместо sed'а используй nvl
edne вне форума   Ответить с цитированием
Старый 11.05.2009, 21:26   #10
Специалист
 
Регистрация: 07.11.2008
Сообщений: 272
Вес репутации: 196
acp - весьма и весьма положительная личностьacp - весьма и весьма положительная личностьacp - весьма и весьма положительная личность
По умолчанию

да уж ну и программисты пошли...

Цитата:
Сообщение от zhegloff Посмотреть сообщение
нафига юзать функции, если можно просто не включать пустые элементы в выборку?
А если нужно показать, что данная таблица имеет нулевую длину? IFNULL тем и хорош, что это позволяет отловить такие ситуации (а если говорить про случаи посложнее то и делать корректные JOINы например)

Вы же предлагаете в where сделать фильтрацию, а тут это не соответсвует задаче. Если, конечно, я правильно ее понял. Однако увидев то как она реально была реализована стало грустно. Но что поделать - хозяин барин.
acp вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
xbl pyton - странный поисковый запрос ChoseN Яндекс 10 22.01.2009 19:29
Запрос выпал из Яндекса Kubert Общие вопросы оптимизации 3 14.10.2008 13:04
XML запрос на проверку индекса nvrskozzy Яндекс 4 28.06.2008 01:27
YAL и Задан пустой поисковый запрос. kazanclub Ошибки при работе с системой 2 06.05.2008 11:50
Левый запрос на выплату Сергей Ошибки при работе с системой 7 23.11.2007 19:10


Часовой пояс GMT +3, время: 14:53.