SQL запрос по поиску и замене двух строчек

  • Автор темы Автор темы mantronix
  • Дата начала Дата начала

mantronix

Client
Регистрация
29.09.2010
Сообщения
185
Реакции
2
Баллы
18
Здравствуйте в базе1 и колонке1 есть две строки вида:
строка1
строка2
Подскажите пожалуйста как должен выглядеть запрос чтобы найти эти две строки и заменить на:
новаястрока1
новаястрока2
Спасибо.
 
Здравствуйте в базе1 и колонке1 есть две строки вида:
строка1
строка2
Подскажите, пожалуйста, как должен выглядеть запрос, чтобы найти эти две строки и заменить на:
новаястрока1
новаястрока2
Спасибо.
Запрос, если правильно понял, должен выглядеть так LIKE 'строка%' . Ссылка на FAQ. В любом случае он вам должен подойти.))
После того как получите выборку через цикл работаете с каждой отдельной строкой.
 
Запрос, если правильно понял, должен выглядеть так LIKE 'строка%' . Ссылка на FAQ. В любом случае он вам должен подойти.))
После того как получите выборку через цикл работаете с каждой отдельной строкой.
у меня две строки одинаковые, не получится работать с каждой по отдельности.
 
Если просто надо заменить, по сути, и первоначальный текст точно известен, то в один запрос:
SQL:
Развернуть Свернуть Копировать
UPDATE `база1` SET `колонка1` = "новаястрока1" WHERE `колонка1` = "строка1";
UPDATE `база1` SET `колонка1` = "новаястрока2" WHERE `колонка1` = "строка2";
Либо как-то точнее описать задачу ))
 
update таблица set поле = новое значение where поле = то что нужно заменить
 
у меня две строки одинаковые, не получится работать с каждой по отдельности.
Либо как-то точнее описать задачу ))
Да, вообще не понятно, что человек хочет. Можно ещё так, если строка одинаковая: UPDATE "база1" SET "колонка1" = "новая строка" WHERE "колонка1" LIKE "строка%";
 
Да, вообще не понятно, что человек хочет. Можно ещё так, если строка одинаковая: UPDATE "база1" SET "колонка1" = "новая строка" WHERE "колонка1" LIKE "строка%";
если быть точнее, то у меня две одинаковые строки:
одинаковая строка
одинаковая строка
мне нужно поменять вторую строку на 100 страницах одним sql запросом и получить:
одинаковая строка
новая строка
как-то так...
прошу прощения, что мудренно изначально изложил..
 
Если быть точнее, то у меня две одинаковые строки:
одинаковая строка
одинаковая строка

мне нужно поменять вторую строку на 100 страницах одним sql запросом и получить:
одинаковая строка
новая строка

Как-то так...
Прошу прощения, что мудрено изначально изложил..
UPDATE "база1" SET "колонка1" = "новая строка" WHERE "колонка1" LIKE "одинаковая строка";
Пояснение:
Там где новая строка. Это то на что будет заменено. То есть 100 строк будут перезаписаны в "колонка 1". При условии если в "колонка 1" содержится текст одинаковая строка.
Подробнее как пользоваться оператором "LIKE" я привел по ссылке выше.

Если нужна четкое содержание, то UPDATE "test" SET "Столбец 2" = "строка новая" WHERE "Столбец 2" = "строка";
 
Последнее редактирование:
  • Оценить
Реакции: mantronix
Самый простой вариант, для нашего понимания, скинуть строку которую вы хотите заменить и строку на которую
 
Если честно, тут уже не в тексте строки вопрос )) Меня больше смутило "мне нужно поменять вторую строку на 100 страницах одним sql". Каких страницах, только вторую, начиная со второй, что делать с первой?
В общем, как поставлена задача, такие и ответы ))

PS. Вообще, если есть необходимость как-то работать с SQL, то лучше поразбираться самому. Советовал бы поискать в интернете курс по SQL от GeekBrains. Весьма толково рассказывает основы, структуру и синтаксис. Уверен, для 95% задач, с которыми приходится сталкиваться в работе, этого будет достаточно.
 
  • Оценить
Реакции: mantronix и djaga
Если честно, тут уже не в тексте строки вопрос )) Меня больше смутило "мне нужно поменять вторую строку на 100 страницах одним sql". Каких страницах, только вторую, начиная со второй, что делать с первой?
В общем, как поставлена задача, такие и ответы ))

PS. Вообще, если есть необходимость как-то работать с SQL, то лучше поразбираться самому. Советовал бы поискать в интернете курс по SQL от GeekBrains. Весьма толково рассказывает основы, структуру и синтаксис. Уверен, для 95% задач, с которыми приходится сталкиваться в работе, этого будет достаточно.
Да и впринципе все ответы дали, пр крайней мере на заданный вопрос
 
  • Оценить
Реакции: mantronix
UPDATE "база1" SET "колонка1" = "новая строка" WHERE "колонка1" LIKE "одинаковая строка";
Пояснение:
Там где новая строка. Это то на что будет заменено. То есть 100 строк будут перезаписаны в "колонка 1". При условии если в "колонка 1" содержится текст одинаковая строка.
Подробнее как пользоваться оператором "LIKE" я привел по ссылке выше.

Если нужна четкое содержание, то UPDATE "test" SET "Столбец 2" = "строка новая" WHERE "Столбец 2" = "строка";
Прошу прощения что пропал, все удалось сделать, спасибо за помощь всем!)
 
И подскажите пожалуйста по ещё одному вопросу, у меня на сайте у каждого товара стоимость закомментирована, каким sql запросом я могу обновить цену внутри комментария, не трогая сам коммент? Причем sql запрос нужно сделать по всем таблицам, не привязывая к одной. Спасибо!
<!-- цена1 -->100<!-- цена1 -->
<!-- цена2 -->100<!-- цена2 -->
 
Последнее редактирование:
И подскажите пожалуйста по ещё одному вопросу, у меня на сайте у каждого товара стоимость закомментирована, каким sql запросом я могу обновить цену внутри комментария, не трогая сам коммент? Причем sql запрос нужно сделать по всем таблицам, не привязывая к одной. Спасибо!
<!-- цена1 -->100<!-- цена1 -->
<!-- цена2 -->100<!-- цена2 -->
А не проще было их изначально по разным столбцам разнести без комментирования? Это и правильнее, имхо (хотя бы с точки зрения структуры, где числа все-таки есть числа, поэтому в поле с текстом их пихать как-то странно), и для работы намного логичнее, ибо быстрее позволит находить и менять.
ps. Задача опять так криво объяснена, что вариантов решения будет опять на десяток постов.
 
А не проще было их изначально по разным столбцам разнести без комментирования? Это и правильнее, имхо (хотя бы с точки зрения структуры, где числа все-таки есть числа, поэтому в поле с текстом их пихать как-то странно), и для работы намного логичнее, ибо быстрее позволит находить и менять.
ps. Задача опять так криво объяснена, что вариантов решения будет опять на десяток постов.
Просто сайт на DLE движке и наименее трудозатратно было закомментировать цену к каждому товару.
Постараюсь описать все максимально подоробно)
Есть база данных BASE. в которой есть таблица dle_post, где имеется 10000 строк(новостей). В каждой новости есть товар у которого есть стоимость, и эта стоимость закомментирована подобным видом:
<!-- яблоки -->100<!-- цена -->
<!-- груши-->100<!-- цена -->
<!-- апельсины-->100<!-- цена -->
Так вот, мне необходим поменять стоимость яблок и груш, т.е. необходимо поменять цену между комментариями <!-- яблоки --><!-- цена --> и <!-- груши--><!-- цена -->

Простыми словами в бд BASE и таблице dle_post, между комментариям <!-- яблоки --><!-- цена --> и <!-- груши--><!-- цена --> нужно вставить цену.
 
Последнее редактирование:
Мне кажется, в твоем случае проще вытащить все строки из бд, где LIKE% "яблоки".
Потом в цикле их обработать, заменив цены, затем залить обратно.
Хотя, возможно, есть какие-то запросы, где можно сразу заменить часть значения по регулярке. Но я так далеко не углублялся, не было такой необходимости ))
 
Да причем нужно это делать регулярно, обновлять цены. Должна по сути быть такая команда которая сможет каждый раз вставлять новую цену между комментариями. Если с регуляркой это можно сделать, то с SQL запросом тоже.
 
Да причем нужно это делать регулярно, обновлять цены. Должна по сути быть такая команда которая сможет каждый раз вставлять новую цену между комментариями. Если с регуляркой это можно сделать, то с SQL запросом тоже.
Ну так гугл в помощь )) Там на все вопросы есть ответы ))
 
вот я даже не могу понять как это может называться, не могу найти..
Ну, что-нибудь типа "SQL поиск и замена текста по регулярному выражению". Ну или как-то так )))
Вообще, грамотно поставленный вопрос - это уже полдела. Даже просто для постановки задачи. Даже самому себе ))

update: Вот тут какой-то подобный пример. Можно повнимательнее поизучать.
Про LIKE подробнее можно, например, тут глянуть примеры.
 
Последнее редактирование:

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)