Нужно переименовать данные в столбце MySQL

0

У меня есть запрос, который захватывает все данные из данной таблицы, но есть несколько точек данных, которые необходимо переименовать.

Пример: в столбце "Мои объекты" у меня есть вещь1, вещь2, вещь3, и их нужно переименовать в предмет 0, вещь1, вещь2,

Вот мой запрос, когда я попытался переименовать только одну часть данных

SELECT *
FROM my_table
WHERE project LIKE "mine"
UPDATE objects
SET objects='thing0'
WHERE objects='thing1'

Благодарю вас.

  • 0
    Ваш вопрос очень общий и, следовательно, привлечет общие ответы. Попробуйте предоставить схему, чтобы мы знали, с чем имеем дело.
  • 0
    Вы пробовали это? Были ли ошибки?
Теги:

2 ответа

0
Лучший ответ

Как я упоминал в своем комментарии, ваш пост очень общий и вряд ли привлечет ответы, которые помогут решить вашу проблему. В этом ответе я постараюсь настроить вас, сообщая вам, что вы сделали неправильно.

Во-первых, ваш запрос неверен, и вы можете легко найти его с помощью любого инструмента проверки синтаксиса SQL. То, что вы пытаетесь сделать с этим, до сих пор не совсем ясно для меня, но ясно, что вы смешали два отдельных запроса в один плохо. Запросы:

  1. SELECT * FROM my_table WHERE project LIKE "mine";
  2. UPDATE objects SET objects = 'thing0' WHERE objects = 'thing1';

Разделяя вышеуказанные запросы, легко видеть, что они вообще не связаны, что свидетельствует о том, что ваше мышление было неправильным. В первом запросе нужно выбрать все строки таблицы my_table которых project атрибут является словом 'mine', тогда как во втором запросе, обновить objects столбец таблицы objects в 'thing0' для строк, которые имеют objects столбец установлен на 'thing1'. Вы можете видеть, что это не имеет никакого смысла.

Если то, что вы пытаетесь сделать, это обновить objects столбец таблицы my_table к 'thing0' для строк столбца имеет значение 'thing1' и project содержит слово 'mine', то запрос вам нужно что - то вместе следующие строки:

UPDATE my_table
SET objects = 'thing0'
WHERE objects = 'thing1'
AND project LIKE '%mine%';

В приведенном выше запросе обратите внимание на знак подстановки % вокруг слова 'mine'. Вот краткое руководство относительно того, как вы можете использовать его в соответствии с вашими потребностями:

AND project LIKE 'mine'     -- Finds any values that equal "mine" (AND project = 'mine')
AND project LIKE 'mine%'    -- Finds any values that start with "mine"
AND project LIKE '%mine'    -- Finds any values that end with "mine"
AND project LIKE '%mine%'   -- Finds any values that have "mine" in any position
  • 0
    Да, я пытаюсь выполнить обе эти команды одновременно, извлекая данные, а также переименовывая части данных, которые необходимо переименовать. Если это не может быть сделано в одном SQL-заявлении, то мое мышление было неверным. Спасибо за помощь.
0

Вы должны просто использовать обновление следующим образом...

UPDATE <tablename> SET 'objects' = 'thing0' WHERE 'objects' = 'thing1' AND 'project' LIKE '%mine%';

Ещё вопросы

Сообщество Overcoder
Наверх
Меню