Помогите создать запрос к базе данных (найти ячейки в базе с определёнными данными, а потом заменить все найденные на другие данные)
Можно ли это сделать одним запросом?
Редактировалось 1 раз(а), последний 2020-01-31 08:37:10
Этот топик читают: Гость
Ответов: 322
Рейтинг: 8
|
|||
карма: 0 |
|
Google
vip
|
#1.1контекстная реклама от партнеров
|
Ответов: 1328
Рейтинг: 69
|
|||
можно
|
|||
карма: 2 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Dad2016 писал(а): Помогите создать запрос к базе данных (найти ячейки в базе с определёнными данными, а потом заменить все найденные на другие данные)UPDATE <имя таблицы> SET <название колонки> = <новое значение> WHERE <название колонки>=<старое значение>; Редактировалось 2 раз(а), последний 2020-01-31 23:25:58 |
|||
карма: 25 |
|
Ответов: 8887
Рейтинг: 823
|
|||
Tad, скорее всего нужен поиск и замена по нескольким параметрам, например: "ФИО" ученика, "Предмет", "ОЦЕНКА"
|
|||
карма: 19 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Леонид писал(а): скорее всегоПоэтому Tad писал(а): Конкретнее можно ?Редактировалось 1 раз(а), последний 2020-02-01 10:17:38 |
|||
карма: 25 |
|
Ответов: 322
Рейтинг: 8
|
|||
Tad писал(а): Конкретнее можно ?База: 1.jpg 2.jpg 3.jpg Дело в том, что паралельно этой базы будет вестись ещё одна (или несколько) формирующихся на основе этой. Если делать исправление в этой базе, буду делать запросы на замену(исправление) данных и в других базах. Заранее спасибо. |
|||
карма: 0 |
|
Ответов: 1925
Рейтинг: 172
|
|||
Я в таких случаях вывожу первой колонкой id записи и потом делаю так:
UPDATE tblname SET object='%1', chiper='%2' WHERE id=%3 Где вместо %1, %2, %3 - данные с верхних точек компонента FormatStr. Главное при добавлении текста в БД не забывать экранировать его, иначе не дай бог попадётся неэкранированный символ ' в самом тексте - будет ошибка. |
|||
карма: 9 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
3042,
Dad2016 писал(а): Дело в том, что паралельно этой базы будет вестись ещё одна (или несколько) формирующихся на основе этой. Если делать исправление в этой базе, буду делать запросы на замену(исправление) данных и в других базах.Dad2016,спрашивает: Каким запросом "Если делать исправление в этой базе, буду делать запросы на замену(исправление) данных и в других базах." У меня пока такое решение: После исправления основной
Редактировалось 3 раз(а), последний 2020-02-03 22:01:55 |
|||
карма: 25 |
|
Ответов: 322
Рейтинг: 8
|
|||
Всем привет, ещё раз объясню вопрос.
В столбце №2 неправильно указан город "Масква", запросом нужно найти все строки с этим городом и исправить на "Москва". Базу схематично исполнил в ехcel. 1.jpg Редактировалось 1 раз(а), последний 2020-02-04 06:18:19 |
|||
карма: 0 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
UPDATE <имя таблицы> SET city = "Москва" WHERE city = "Масква";
|
|||
карма: 25 |
| ||
Голосовали: | Dad2016 |
Ответов: 322
Рейтинг: 8
|
|||
Tad
Спасибо огромное. |
|||
карма: 0 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
По-хорошему должна быть одна таблица городов.
-- Создать список городов CREATE TABLE IF NOT exists city_list ( city_id INTEGER PRIMARY KEY, city_name TEXT NOT NULL, city_code TEXT NOT NULL); -- Заполнить INSERT INTO city_list(city_name,city_code) values ("Москва","495"); INSERT INTO city_list(city_name,city_code) values ("Сочи","8622"); INSERT INTO city_list(city_name,city_code) values ("Иваново","0932"); INSERT INTO city_list(city_name,city_code) values ("Самара","8462"); -- В остальных таблицах не пишешь "Москва", а в колонку "Город" пишешь id города. |
|||
карма: 25 |
|
Ответов: 321
Рейтинг: 10
|
|||
Tad писал(а): UPDATE <имя таблицы> SET city = "Москва" WHERE city = "Масква";
Tad, подскажите пожалуйста, а если переменная city пустая, то как можно отменить where непосредственно в запросе (mysql) ?! $city = 'Москва'; "SELECT * from `users` WHERE city=$city"; Т.е, если: $city = ''; "SELECT * from `users` WHERE city=$city"; // не дает выборку, а нужно в противном случае, выбрать все города Как я понял, есть функция IFNULL, но она вроде работает именно с данными выборки, а не с запросом. И пустая переменная - это не есть NULL, по идее. |
|||
карма: 1 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Master4eG, а просто IF не работает ?
Редактировалось 1 раз(а), последний 2020-02-06 20:12:39 |
|||
карма: 25 |
| ||
Голосовали: | Master4eG |
Ответов: 321
Рейтинг: 10
|
|||
Tad, спасибо большое, за примеры возможных реализаций, к сожалению не один не подошел.
Возможно надо было сразу сказать, что это под php, и там видимо тело запроса не поддерживает условия, пришлось условие вынести за пределы запроса. Я пробовал перед if делать SET @city = $city и далее пробовать работать с sql переменной, но не вышло.. Потом по вашим примерам пробовал делать if 1 = 1... выдает: Сообщение ошибки: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF (1=1,SELECT * from `_workers`,SELECT * from `_workers` WHERE city=1' at line 1 Вообщем эта делема не стоит вашего времени, и так работает, просто хотелось именно в запросе попробовать поработать с условием(для опыта). Tad писал(а): По-хорошему должна быть одна таблица городов. -- Создать список городов CREATE TABLE IF NOT exists city_list ( city_id INTEGER PRIMARY KEY, city_name TEXT NOT NULL, city_code TEXT NOT NULL); -- Заполнить INSERT INTO city_list(city_name,city_code) values ("Москва","495"); INSERT INTO city_list(city_name,city_code) values ("Сочи","8622"); INSERT INTO city_list(city_name,city_code) values ("Иваново","0932"); INSERT INTO city_list(city_name,city_code) values ("Самара","8462"); -- В остальных таблицах не пишешь "Москва", а в колонку "Город" пишешь id города. Пока вы тут обсуждаете правильное хранение данных в таблицах, подскажите как правильно потом забирать эти данные ?! Как выбрать всех например из таблицы users, где город - москва, ведь в users будет не город, а по-правильному city_id. Знаю, что join или union нужен, не помню точно, но сложная тема для меня, хотелось бы увидеть пример от вас, если не затруднит. Пока писал сообщение, подумал о insert, ведь это city_id как-то вставить туда сначала нужно... Как добавить в users Ивана из Москвы, имея city_list с городами. Редактировалось 2 раз(а), последний 2020-02-06 22:37:08 |
|||
карма: 1 |
|