0 / 0 / 0
Регистрация: 25.04.2013
Сообщений: 18
1

замена NULL на "Нет данных"

03.10.2013, 13:16. Показов 15275. Ответов 8
Метки нет (Все метки)

Eсть таблица с полями id,name,class,prod и т.д.
мне нужно пройтись по name,class,prod и заменить, если там стоит NULL на запись "Нет данных"

Гуглил, но не смог реализовать подобные коды, что там представлены.
Help )))
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.10.2013, 13:16
Ответы с готовыми решениями:

Значение по умолчанию: "0"; "Null"; "нет значения по умолчанию"
Форумчане, прошу Вашего совета! В свойствах поля таблицы MySQL "Значение по умолчанию" есть :...

База данных с XAMPP (MySQL) - ошибка "нет доступа"
Заранее сорри, сами опытные программеры, но в этом новички и чувствуем, что ошибка какая-то дурная....

Дана таблица "Сделка"("Код Товара", "дата", "количество") Удалите все прошлогодние сделки.
помогите решить задания!!! 1.Составьте SQL-запрос на удаление. Дана таблица "Сделка"("Код...

Приоритеты выдачи: сначала выдавать записи со значением "q", затем "sh", и в конце "s"
Есть небольшая база данных (предположим 10 записей). Есть столбик "Game", он может принимать 3...

8
614 / 488 / 175
Регистрация: 02.03.2010
Сообщений: 1,236
03.10.2013, 13:31 2
Вариант 1, наиболее верный при проверке только одного поля:
MySQL
1
IFNULL(name, 'Нет данных')
Вариант 2, наиболее верный, при проверке более одного поля, берется первое не NULL'овое:
MySQL
1
COALESCE(name, .., 'Нет данных')
Вариант 3, не только для проверки на NULL:
MySQL
1
IF(name IS NULL, 'Нет данных')
P.S. не поверю, что был юзан гугал, т.к. один из вариантов полюбому нашелся бы
1
0 / 0 / 0
Регистрация: 25.04.2013
Сообщений: 18
03.10.2013, 15:18  [ТС] 3
Работаю через MySQL Workbench
подскажите как будет полностью выглядеть запрос?
база iff
таблица chips

вот я находил подобные решения, но запрос не могу составить

Добавлено через 14 минут
select IFNULL(impClass, 'Нет данных') FROM `iss`.`chips`;
ну вот я написал такой запрос, а он мне тупо отобразил результат, но ничего не сохранил
0
Модератор
4198 / 3038 / 580
Регистрация: 21.01.2011
Сообщений: 13,135
03.10.2013, 15:42 4
Цитата Сообщение от vetash Посмотреть сообщение
он мне тупо отобразил результат, но ничего не сохранил
А что и где должно сохраниться?
0
0 / 0 / 0
Регистрация: 25.04.2013
Сообщений: 18
03.10.2013, 15:51  [ТС] 5
Цитата Сообщение от Grossmeister Посмотреть сообщение
А что и где должно сохраниться?
он должен внести изменения в таблицу...
ну типо этого....
update `iff`.`chips`--заменить в столбце name все NULL на "Нет данных"-- where --для всех строк--;
0
Модератор
4198 / 3038 / 580
Регистрация: 21.01.2011
Сообщений: 13,135
03.10.2013, 16:06 6
Так про замену ты ничего не сказал.
Тут все просто:
SQL
1
2
3
UPDATE tab1
SET fld1 = 'Нет данных'
WHERE fld1 IS NULL
Вот только делать это я бы не рекомендовал (если, конечно, это не учебный пример). NULL в БД имеет особое значение и выбирается спец. конструкциями IS NULL, IS NOT NULL и т.д.
А если мы заменяем его на какой-то эквивалент, то есть минусы:
1. мы не сможем отличить, был введен NULL (отсутствие инфы) или была введена строка, соответствующая эквиваленту
2. если я не знаю этой БД (пришел на новую работу), то я еще должен догадаться, что означает сия строчка
3. эту строчку я должен буду писать во все запросы, которые будут анализировать это поле вместо общеупотребительного NULL
4. в некоторых СУБД значение NULL дает доп. инфу самой СУБД (оптимизатору и др.). Соответственно, используя эквивалент, мы этих возможностей лишаемся
5. наконец, во многих СУБД эквивалент просто занимает больше места
1
0 / 0 / 0
Регистрация: 25.04.2013
Сообщений: 18
03.10.2013, 16:19  [ТС] 7
Цитата Сообщение от Grossmeister Посмотреть сообщение
Так про замену ты ничего не сказал.
Тут все просто:
SQL
1
2
3
UPDATE tab1
SET fld1 = 'Нет данных'
WHERE fld1 IS NULL
Не работает, выдает ошибку...
0
Модератор
4198 / 3038 / 580
Регистрация: 21.01.2011
Сообщений: 13,135
03.10.2013, 16:22 8
Ошибка выдается для того, чтобы прочесть ее текст и понять, что не так.
1
0 / 0 / 0
Регистрация: 25.04.2013
Сообщений: 18
03.10.2013, 16:34  [ТС] 9
Цитата Сообщение от Grossmeister Посмотреть сообщение
Ошибка выдается для того, чтобы прочесть ее текст и понять, что не так.
16:30:17 UPDATE `iss`.`chips` SET ImpClass = 'Нет данных' WHERE ImpClass IS NULL Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Queries and reconnect. 0.000 sec

Добавлено через 3 минуты
SQL
1
2
3
UPDATE `iss`.`chips`
SET ImpClass = 'Нет данных'
WHERE ImpClass IS NULL LIMIT 30000;
Решил проблему так) прописал
SQL
1
LIMIT 30000
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.10.2013, 16:34
Помогаю со студенческими работами здесь

Как при открытии или печати отчета вывести "Нет данных", если в источнике нет записей?
Как при открытии или печати отчета вывести 'НЕТ ДАННЫХ' если в источнике нет записей ? Если нет...

Местонахождение данных с префиксом "res." и "dur."
Есть запрос в базу данных, player_name понятно, я его в masterlom вижу, а вот от куда он...

Замена символов кириллицы на знак "?"
Доброго времени суток уважаемые. Проблема следующая, при передачи данных с формы (php страница)...

Вывести все книги автора "Кинг", которые выпустило издание "Олимп"
доброго времени суток:) не получается создать запрос с подзапросом по заданию: вывести все книги...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru