2009-12-13 3 views
3

Мне хотелось бы знать, как это можно сделать. скажем, у меня это в моей базе данных «первым», и если я хочу обновить и добавить «вторую», в которой я могу иметь этот формат «первый, второй». Я использовал этот UPDATE table SET number="second", но он удаляет «первый». Я использую PHP и MySQL, спасибоКак обновить данные в базе данных без удаления старых данных?

ответ

5

Я думаю, вы имели в виду:

// if number is "first", it will become "first, second" 
UPDATE table SET number = CONCAT(number, ", second") 

, но я не думаю, что это то, что вам нужно. Можете ли вы объяснить, что вы пытаетесь сделать?

+0

+1, я думаю, что это то, что ему нужно. –

+0

вот что мне нужно, спасибо. :) – Sam

+0

FWIW: если вы пытаетесь сохранить список в базе данных, не делайте этого так. Вместо этого сохраните данные в виде отдельных строк и используйте GROUP_CONCAT для извлечения результата при выборе. –

1
UPDATE table SET number=concat_ws(",", number, "second") 
+0

Это на самом деле «первый, второй», а не «первый, второй». –

+0

вы можете просто добавить пробел после вызова функции – Galen

0

Ответ на выбранный вами вариант дает вам то, что вы хотите. Я хочу услышать что-то, что может показаться вам полезным.

Поскольку вы, очевидно, обучение, давайте убедиться, что вы получите некоторые связанные элементы покрыты, а также:

  1. базы данных и код резервного копирования: Держите оригинальный сейф, прежде чем начать с вашего удовольствия с ним. Если что-то пойдет не так, вы всегда можете восстановить резервную копию и продолжить работу.

  2. Управление кодом суса: Сохраните код под контролем исходного кода, чтобы вы могли вернуться к предыдущим версиям по мере необходимости.

  3. Разделение Prod и Dev: Если вы играете в Production, вы можете нанести большой урон. Сделайте двойной тройной уверен, что вы работаете в изолированной среде.

Смежные вопросы