Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > НАЙТИ ЗАПИСЬ КОТОРАЯ МАКСИМАЛЬНО ЗАПОЛНЕНА


Автор: batek 18.6.2006, 20:24
Нужно найти запись у которой максимум полей заполнено т.е минимум пустых полей 

Автор: Mal Hack 18.6.2006, 20:32
Сделать дополнительное поле с кол-вом заполненных полей. Считать программно.  

Автор: Mephisto 20.6.2006, 18:23
Какая СУБД?
Если есть возможность можно создать Calc Field. Насколько я знаю такого поля в мускуле нет. smile
Тогда возможно при вставке заполнять его, тобиш:
Код

intesrt into your_table(a,b,c) values  (var1,var2,isnull(var1,'')+isnull(var2,''))

Тип поля Varchar.
Далее делаешь запрос:
Код

select a, b from your_table Order by Len(c) desc
 

Автор: sergejzr 20.6.2006, 18:24
Модератор: [B]batek, пожалуйста, не пиши названия тем исключительно в верхнем регистре![/B]
 

Автор: skyboy 20.6.2006, 18:39
batek, если у тебя есть null- значения, значит, база неверно спроектирована. Это раз. А это - два:
Код

SELECT (field1 is null)+(field2 is null)+(field3 is null)+(field4.......) FROM test order by 1 desc
 

Автор: GZep 12.7.2006, 10:38
Такая ситуация, когда нужно произвести выборку 
Цитата
максимум полей заполнено т.е минимум пустых полей
 я считаю неправильна. А именно неправильна сама система в которой должен выполнятся этот запрос.
Т.е. в нормальном скрипте не должна получится такая ситуация, кагда нужно выполнить такой запрос....

Подумай может можно придумать как-нибудь получше??? smile  

Автор: BobiKK 14.7.2006, 09:32
Цитата(skyboy @  20.6.2006,  18:39 Найти цитируемый пост)
если у тебя есть null- значения, значит, база неверно спроектирована. Это раз.

А что в этом плохого?
У меня есть многие таблицы, в которых нету опции "NOT NULL". И я не особо страдаю. Проверяю на NULL просто функцией isset() 

Автор: skyboy 14.7.2006, 10:13
BobiKK, я не говорю, что плохо. Я считаю, что неверно smile Согласно нормальной форме(фиг  помнит, какой из пяти) в этом случае надо бы клепать отдельную таблицу, в которую заносить только не-null значения. Хотя бы затем, чтоб не надо было вставлять в WHERE отсев только существующих значений. Приведи лучше пример, когда необходимо иметь поля с null-значениями. smile 

Автор: BobiKK 14.7.2006, 11:22
Я не говорю, что надо иметь NULL или не иметь. Я просто разницы принцпиальной не вижу. Всё зависит от того, как эти значения обрабатываются.
Скажем, если у тебя в таблице стоит DEFAULT 0, а у меня ничего, то конструкции:
if ($sample_assoc_result['sample_field'] == 0) do_nothing();
и
if (!isset($sample_assoc_result['sample_field'])) do_nothing();
эквивалентны. 

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