powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вставить пустое поле как null
17 сообщений из 42, страница 2 из 2
Вставить пустое поле как null
    #33472154
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
u4x96А вод поведенуе MySQL различается от версии и параметров компиляции(которорые нельзя кат просто, кка у MS менять). В PHP появление NULL и вовсе приводит к значительному увеличению кода, а то и к дырам в безопасности.
Увы, сложно спорить, поведение MySQL от версии к версии (точнее от ветки к ветке) нередко меняется, ну система развивается, что поделать.
По поводу простоты изменения поведения, в случае с MS вы вряд ли сможете изменить поведение сверх заранее предусмотренного разработчиками,)
А вот насчёт PHP хотелось бы увидеть примеры в качестве аргументов.
...
Рейтинг: 0 / 0
Вставить пустое поле как null
    #33472179
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
читаем:
ansi_sql_92
1) Let X and Y be any two corresponding <row value constructor
element>s. Let XV and YV be the values represented by X and Y,
respectively.

Case:

a) If XV or YV is the null value, then "X <comp op> Y" is un-
known.


то есть NULL=NULL не является false. Так что вы недостаточно тщательно читали sql стандарт.


По по поводу ('' IS NULL) стандарт не говорит ни чего.


Это как? целый раздел 8.6 с названием <null predicate>


А вод поведенуе MySQL различается от версии и параметров компиляции(которорые нельзя кат просто, кка у MS менять).


Это вы вообще о чем говорите? Ну ка с этого момента поподробнее? От каких версий это зависит? какие параметры компиляции вы имеете в виду?
...
Рейтинг: 0 / 0
Вставить пустое поле как null
    #33472223
u4x96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"то есть NULL=NULL не является false"

А кто это говорил
"любая простая функция с NULL дает NULL в том чилсле NULL=NULL что в конечном условии равнозначо FALSE(хотя там свои тараканы, читайте "троичная логика")"
то есть NULL=NULL, и NOT(NULL=NULL) равно NULL, что в конечном условии(предложение WHEN например) равнозначо FALSE, тоесть строка выкидывается. Под тараканами я имел ввиду NOT(NULL):NULL, NULL OR TRUE:TRUE, NULL OR FALSE:NULL и т.д.

"По по поводу ('' IS NULL) стандарт не говорит ни чего."
"Это как? целый раздел 8.6 с названием <null predicate>"

Чесно ни читал и читать не собираюсь, каждыйк сервер кто влес кто по дрова и положили они на этот параграф, как впрочем и я. Трудно представить ситуацию когда пустая строка нужна и не асоциируется с NULL. Кому нужны мертвые стандарты.

"Это вы вообще о чем говорите? Ну ка с этого момента поподробнее? От каких версий это зависит? какие параметры компиляции вы имеете в виду?"

Зайди на mysql.com и почитай.

"По поводу простоты изменения поведения, в случае с MS вы вряд ли сможете изменить поведение сверх заранее предусмотренного разработчиками,)"

После подлючения:
SET ANSI_NULLS ON
И не какие права не нужны, естественно это влияет только на ваши запросы, а не на процедуры и другие сохраненные обьекты. Не о какой перекомпиляций кода естественно и речи быть не может.

Читаем поле в глобальную переменную $a PHP, я сейчас и не припомню как вобще проверить поле на NULL в PHP, предположем mysql_is_null, a может стабтнаятная is_null канает.
if (is_null($result['a']))
$a=$result['a'];
else
unset($a);
Длиновато, найдуться ооптимизаторы которые сократят до
$a=$result['a'];
Чем это черевато при REGISTO_GLOBAL_ON
localhost?a=45
...
Рейтинг: 0 / 0
Вставить пустое поле как null
    #33472242
Еретик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хренчитаем:
ansi_sql_92
1) Let X and Y be any two corresponding <row value constructor
element>s. Let XV and YV be the values represented by X and Y,
respectively.

Case:

a) If XV or YV is the null value, then "X <comp op> Y" is un-
known.


то есть NULL=NULL не является false. Так что вы недостаточно тщательно читали sql стандарт.


Здесь написано " NULL=NULL is uknown". Unknown на языке СУБД значит NULL (а не false, строго говоря).




Код: plaintext
1.
2.
3.
mysql> SELECT  1  <=>  1 , NULL <=> NULL,  1  <=> NULL;
        ->  1   1   0 


Но это только для <=>, а не для =


Да и вообще, от темы уже, кажется, все ушли. Парню надо было заменять '' на NULL... Только вот вопрос - НАФИГА ?

На мой взгляд, это опасное решение - зависит от нестандартных флагов, версий, параметров ini.... Стоит ли такая игра свеч? У кого есть версии?
...
Рейтинг: 0 / 0
Вставить пустое поле как null
    #33472620
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
u4x96Кому нужны мертвые стандарты.Любой нормальный программист тебе скажет, что нулл и пустая строка - не одно и то же, и, пожалуй, только у оракла на этот счёт своё мнение.
...
Рейтинг: 0 / 0
Вставить пустое поле как null
    #33473025
u4x96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmo u4x96Кому нужны мертвые стандарты.Любой нормальный программист тебе скажет, что нулл и пустая строка - не одно и то же, и, пожалуй, только у оракла на этот счёт своё мнение.
Не путай БД с класическими языками C++, Java, ... Там NULL и пустая строка это абсолютно разная и необходимая вещ. А в базах это геморой, который решается либо NOT NULL DEFULT '' либо NULL с установкой минимальной длины строки, в Oracle прописано стандартное решение NULL IS ''. Не разу не видел чтобы использовались пустые стрки и NULL одновременно, если есть идее поделись.
...
Рейтинг: 0 / 0
Вставить пустое поле как null
    #33473081
Фотография Dinky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
u4x96пустые стрки и NULL одновременно, если есть идее поделись.
элементарно - надо хрвнить: 1) значение 2) пустое значение 3) отсутствие значения

--
Dmitry
...
Рейтинг: 0 / 0
Вставить пустое поле как null
    #33473093
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
u4x96
"По по поводу ('' IS NULL) стандарт не говорит ни чего."
"Это как? целый раздел 8.6 с названием <null predicate>"

Чесно ни читал и читать не собираюсь, каждыйк сервер кто влес кто по дрова и положили они на этот параграф, как впрочем и я. Трудно представить ситуацию когда пустая строка нужна и не асоциируется с NULL. Кому нужны мертвые стандарты.

От это финт ушами!
Сначала заявить, что MySQL не следует стандарту, и потому отстой, потом сказать, что стандарт не читал, потому как положили все на стандарт, и кому такой стандарт нужен?
Сильный ход!
u4x96
"Это вы вообще о чем говорите? Ну ка с этого момента поподробнее? От каких версий это зависит? какие параметры компиляции вы имеете в виду?"

Зайди на mysql.com и почитай.

"По поводу простоты изменения поведения, в случае с MS вы вряд ли сможете изменить поведение сверх заранее предусмотренного разработчиками,)"

После подлючения:
SET ANSI_NULLS ON
И не какие права не нужны, естественно это влияет только на ваши запросы, а не на процедуры и другие сохраненные обьекты. Не о какой перекомпиляций кода естественно и речи быть не может.

Прочитал http://dev.mysql.com/doc/refman/5.0/en/ansi-mode.html .
О какой перекомпиляции идёт речь?
Если ставить это только для сессии (без GLOBAL) никаких особенных прав также не нужно.
u4x96
Читаем поле в глобальную переменную $a PHP, я сейчас и не припомню как вобще проверить поле на NULL в PHP, предположем mysql_is_null, a может стабтнаятная is_null канает.
if (is_null($result['a']))
$a=$result['a'];
else
unset($a);
Длиновато, найдуться ооптимизаторы которые сократят до
$a=$result['a'];
Чем это черевато при REGISTO_GLOBAL_ON
localhost?a=45
Ну, знаете ли, register_globals=on -- это одна сплошная дыра, сколько я PHP использую -- столько в документации и не рекомендуют использовать этот режим работы. С версии 4.2.0 он по умолчанию выключен, а этой версии без малого 4 года.

Вот, например, скрипт:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
<?php
include_once('config.inc.php');
$link = connect_db();
$result = mysql_query('SELECT NULL');
$row = mysql_fetch_array($result);
$a = $row[ 0 ];
var_dump($row);
var_dump($a);
?>
И его вывод:
Код: plaintext
array( 2 ) { [ 0 ]=>  NULL ["NULL"]=>  NULL } NULL
И где эта дыра-дыра?
...
Рейтинг: 0 / 0
Вставить пустое поле как null
    #33473096
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dinky u4x96пустые стрки и NULL одновременно, если есть идее поделись.
элементарно - надо хрвнить: 1) значение 2) пустое значение 3) отсутствие значения

--
Dmitry
+1
Вполне стандартная ситуация.
...
Рейтинг: 0 / 0
Вставить пустое поле как null
    #33473100
u4x96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dinky u4x96пустые стрки и NULL одновременно, если есть идее поделись.
элементарно - надо хрвнить: 1) значение 2) пустое значение 3) отсутствие значения

--
Dmitry
Пожалуста пример на уровне проэктирования
Вроде: КодКлиента 0-Клиент с кодом 0,NULL - его нету, товар продался в розницу
...
Рейтинг: 0 / 0
Вставить пустое поле как null
    #33473104
Фотография Dinky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
u4x96
Пожалуста пример на уровне проэктирования
Вроде: КодКлиента 0-Клиент с кодом 0,NULL - его нету, товар продался в розницу
Увы, товарами не торгуем, торгуем сервисом :) Пример - база подписчиков, у каждого есть десятка два необязательных атрибутов, одни из них заполнены, другие - пустые, третьи - не заполнены (NULL). Используются все три типа значений. NULL в одних случаях означает "ко мне не относится", в других "вот этого - не нада!" :)

--
Dmitry
...
Рейтинг: 0 / 0
Вставить пустое поле как null
    #33473105
u4x96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To DocaAl

Что ты с темы збился, если хоче Подискутировать о преимуществах MqSql. Зайди на rsdn.ru там специальный форум есть называеться "Компьютерные священные войны" в разделе "О жизни", я даже там тему для тебя соответствиющию сделал.
...
Рейтинг: 0 / 0
Вставить пустое поле как null
    #33473108
u4x96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dinky u4x96
Пожалуста пример на уровне проэктирования
Вроде: КодКлиента 0-Клиент с кодом 0,NULL - его нету, товар продался в розницу
Увы, товарами не торгуем, торгуем сервисом :) Пример - база подписчиков, у каждого есть десятка два необязательных атрибутов, одни из них заполнены, другие - пустые, третьи - не заполнены (NULL). Используются все три типа значений. NULL в одних случаях означает "ко мне не относится", в других "вот этого - не нада!" :)

--
Dmitry
А что означает пустые, и если можно не столь абстрактно.
...
Рейтинг: 0 / 0
Вставить пустое поле как null
    #33473135
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
u4x96To DocaAl

Что ты с темы збился, если хоче Подискутировать о преимуществах MqSql. Зайди на rsdn.ru там специальный форум есть называеться "Компьютерные священные войны" в разделе "О жизни", я даже там тему для тебя соответствиющию сделал.
По существу, я так понимаю, сказать нечего?
...
Рейтинг: 0 / 0
Вставить пустое поле как null
    #33473150
u4x96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня нет ни малейшего желания спорить с фанатиками Open Source, или еще чегонибуть. Так что поздравляю ты победил, ГОРДИСЬ.
...
Рейтинг: 0 / 0
Вставить пустое поле как null
    #33473156
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ваше сообщение "по теме":
u4x96
В MySQL и PHP работа с NULL реализована через задние место, как и многое другое.
Лудше NULL вобще не использоват, а использовать пустые строки и 0.

Ничего из сказанного вы аргументами подтвердить не смогли.
Причём тут какой-либо фанатизм? По крайней мере, в чём заключается _МОЙ_ фанатизм?,)
...
Рейтинг: 0 / 0
Вставить пустое поле как null
    #33473170
Фотография Dinky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
u4x96У меня нет ни малейшего желания спорить с фанатиками Open Source, или еще чегонибуть. Так что поздравляю ты победил, ГОРДИСЬ.
Я фанатик Здравого Смысла, поздравьте плиз и меня, жалко что-ли? :)

--
Dmitry
...
Рейтинг: 0 / 0
17 сообщений из 42, страница 2 из 2
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вставить пустое поле как null
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]