Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 11.06.2015
Сообщений: 24

Замена в базе данных в столбце "Информация" весь текст на город

22.07.2015, 11:34. Показов 1483. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!
Не могу решить вопрос, есть таблица:
БД1 столбцы: Номер, Дата, Информация

В поле "Информация" введён текст, в котором обязательно присутствует название города.
Нужно заменить в базе данных в столбце "Информация" весь текст на город (Славград, Королёв, Мытищи, Другие)

Пробовал через iif
Запрос отрабатывает, заменяет и выводит два столбца: уникальный номер и город.
Но обновить таблицу не могу UPDATE ругается:
SQL
1
2
3
4
5
6
7
UPDATE БД1
SET БД1.Информация =(SELECT Номер,
iif БД1.Информация LIKE '*Славград*', "Славград", 
iif БД1.Информация LIKE '*Королёв*', "Королёв", 
iif БД1.Информация LIKE '*Мытищи*', "Мытищи", 
iif БД1.Информация LIKE '*Другие*', "Другие" 
FROM БД1)
Можно конечно запрос iif сохранить в БД2, а потом:

SQL
1
2
3
UPDATE SAS
SET БД1.Информация =БД2.Информация
WHERE БД1.Номер=БД2.Номер
Но хочется обновить одним запросом, без промежуточных БД.

Добавлено через 14 минут
Выше UPDATE указал с ошибками.
Пробовал запрос:
SQL
1
2
3
4
5
UPDATE БД1
SET БД1.Информация =(SELECT iif (БД1.Информация LIKE '*Славград*', "Славград", 
iif (БД1.Информация LIKE '*Королёв*', "Королёв", 
iif (БД1.Информация LIKE '*Мытищи*', "Мытищи", "Другие"))))
FROM БД1)
Выпадает ошибка: В операции должен испльзоваться обновляемый запрос.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.07.2015, 11:34
Ответы с готовыми решениями:

Информация в базе данных
У меня такой вопрос если у меня есть какой то критерий (например номер телефона) и к нему привязано много значений, то где лучше это...

В базе данных устарела информация
В базе данных устарела информация. Надо сравнивать время записи информации с текущем временем,если больше 5 дней не выводить. Как...

Не обновляется информация в базе данных
форма <?php include ("/inc/bd.php"); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"...

7
шапоклякистка 8-го дня
 Аватар для texnik-san
3681 / 2241 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
22.07.2015, 12:36
Совершенно верно, запрос с вложенным запросом не обновляемый. Что мешает сохранить список городов в таблице?
0
0 / 0 / 0
Регистрация: 11.06.2015
Сообщений: 24
22.07.2015, 12:48  [ТС]
Просьба уточнить вопрос, список городов в отдельную таблицу я занесу, например у меня будет БД3 и столбик города (Славград, Королёв, Мытищи, Другие)
Но как мне это поможет менять столбец "Информация" в БД1?
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
22.07.2015, 12:53
Функцию DLookUp изучайте ... . И лучше не менять, а ставить в дополнительный столбец код города из этой таблицы.
0
шапоклякистка 8-го дня
 Аватар для texnik-san
3681 / 2241 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
22.07.2015, 12:58
Лучший ответ Сообщение было отмечено Andrelol как решение

Решение

SQL
1
2
UPDATE БД1, БД3 SET БД1.Информация = БД3.Город
WHERE (((БД1.Информация) LIKE "*" & [БД3].[Город] & "*"));
1
0 / 0 / 0
Регистрация: 11.06.2015
Сообщений: 24
22.07.2015, 13:29  [ТС]
texnik-san, Спасибо!
Изначально именно так и хотел, но не смог придумать как сделать выборку
SQL
1
WHERE (((БД1.Информация) LIKE "*" & [БД3].[Город] & "*"))
Всё получилось!
0
0 / 0 / 0
Регистрация: 11.06.2015
Сообщений: 24
23.07.2015, 14:19  [ТС]
texnik-san, Ваш вариант мне помог, но в нём была проблема, если запрос в БД3 не смог найти соответствующий город, то он запись оставляет неизменной.
я добавил в запрос iif и всё заработало, если город не найден, проставляется "Другой"

SQL
1
2
UPDATE БД1, БД3 SET БД1.Информация = БД3.Город
WHERE iif (БД1.Информация LIKE "*" & [БД3].[Город] & "*", "Другой")
спасибо огромное, без вашей помощи, долго бы ещё мучился!

Добавлено через 16 минут
Рано радовался ))) отработать запрос отработал, но "другой" не проставился ) и это правильно iif определяет критерии проверки(в данном случае), а не предоставляет варианты ввода. О чем я думал когда писал...
0
шапоклякистка 8-го дня
 Аватар для texnik-san
3681 / 2241 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
23.07.2015, 16:16
Andrelol, сделайте это в двух разных запросах. В первом делаете те замены, для которых вхождение образца есть.

Во втором заменяете на "Другой" все остальные тексты.

SQL
1
2
3
UPDATE БД1 LEFT JOIN БД3 ON БД1.Информация=[БД3].[Город]
SET БД1.Информация = "Другой"
WHERE isnull([БД3].[Город]);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.07.2015, 16:16
Помогаю со студенческими работами здесь

Замена всех данных в столбце
Добрый день, постараюсь всё коротко и внятно) 1. В базе данных есть несколько таблиц, содержащих столбец product_id 2. Каждый...

Найти наиболее частовстречающийся элемент в столбце в базе данных
import pandas as pd import numpy as np data = pd.read_csv('JC-201809-citibike-tripdata.csv') data выводит таблицу. В таблице...

Создать программу “база данных”. В базе должна храниться информация о городах и их населении.
Имя города является уникальным ключом. Необходимые операции: добавить (add) и удалить (remove) информацию о городе, вывести весь список...

Замена данных в столбце DataGridViewer при загрузке из БД
Доброго времени суток. Есть проблемка с заменой разнотипных данных. В БД у меня есть таблица с пользователями приложения. В самой базе всю...

Моя игра отключает весь город от интернета
я в этом полный "чайник", просто давно играю в эту игру и с чего она стала вдруг такое вытворять не знаю. игра не браузерная - автогонки...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru