За последние 24 часа нас посетили 17850 программистов и 1658 роботов. Сейчас ищут 1229 программистов ...

Терминология иерархии и SELECT с UPDATE вместе.

Тема в разделе "MySQL", создана пользователем WoWeb Hunter, 2 июн 2017.

  1. WoWeb Hunter

    WoWeb Hunter Новичок

    С нами с:
    25 май 2017
    Сообщения:
    28
    Симпатии:
    1
    БД - Таблица1:

    1. users - id, log, pass, img
    2. goods - gid,price, img
    3. example 1 - exmpl1, exmpl2, exmpl3
    4. example 2 - exmpl1, exmpl2, exmpl3

    Все это если я правильно выражаюсь набор таблиц в БД, а как правильно называть иерархию? Вопрос по терминологии. Т.е. сама таблица в БД тут "Таблица1", тобишь родительская таблица. В ней находятся таблицы 1,2,3,4 которые имеют свои поля. Т.е. 1,2,3,4 дочерние таблицы "Таблицы1". Как это все правильно называть или я сам ответил на вопрос?
    -------------------------------

    Есть таблица, к примеру test, в ней куча других таблиц со своим айди и другими полями. Сейчас правлю каждый id вручную, например: SELECT * FROM `study` WHERE `id`='3547', дальше через GUI myadmin'а редактирую нужное поле.

    Я же хочу редактировать через SQL запрос, причем сразу все необходимые id. По логике нужно сделать вначале SELECT всех необходимых id и следом UPDATE. Как связать SELECT и UPDATE вместе?
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Смотря как обновляешь, если всем одинаковые данные, то SELECT делать не надо, просто UPDATE и указываешь WHERE какие записи затронуть
     
  3. WoWeb Hunter

    WoWeb Hunter Новичок

    С нами с:
    25 май 2017
    Сообщения:
    28
    Симпатии:
    1
    всем разные данные. на данный момент в каждом айди в поле img стоит *.gif, мне нужно прописать тоже самое название, но в пнг формате.
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    тебе нужно написать такой update, который используюя строковые функции MySQL обрежет и заменит расширение файлов у тех строк, у которых `id` in (...)
    вот и всё
    тогда это будет "через один запрос все необходимые поля"

    но по большому счету в этом нет нужды
    можно сначала выбрать, потом в php обработать значения, а потом уже заменить через update
    результат будет тот же.
     
    WoWeb Hunter нравится это.
  5. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    Код (Text):
    1. UPDATE `table_name` SET `field_name`= REPLACE(`field_name`, '.gif', '.png')
    2.   WHERE `id` IN (через запятую id записей)
    // если во всех полях поменять то WHERE не нужен
     
    WoWeb Hunter нравится это.
  6. WoWeb Hunter

    WoWeb Hunter Новичок

    С нами с:
    25 май 2017
    Сообщения:
    28
    Симпатии:
    1
    нет, через пхп ничего не хочу менять. во первых скрипт не мой и достаточно геморойный в связи с тем что автор писал его на разных стадиях своих знаний + я нуб и скорее всего не смогу привязать свой код к общим правам всего движка. во вторых хочется решить именно описанную практическую задачу без обходных вариантов. мне для дела так сказать не проблема по одному все заменить через редактор. но вот возник вопрос, достаточно интересный - потому и написал.

    вот это варик, узнал про REPLACE. однако: "Затронуто 0 строк. ( Запрос занял 0.0002 сек. )". Видимо потому-что в нужных мне id, field name пуст? В любом случае в копилку знаний пошло)) Спасибо.
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    смотри запрос какой получается