Я пытаюсь что-то в MySQL, что я делаю в JavaScript / PHP все время. Мне нужно объединить значение поля в MySQL со значением, которое передается в запрос из PHP. Например, скажем, у меня есть поле с именем favourites
со значением 27
и у меня есть этот запрос:
UPDATE useraccs SET favourites = favourites + ',30' WHERE id='10'
Мое желаемое новое значение для favourites
было бы 27,30
, но я получаю 57
где явно SQL добавляет их численно. Я установил тип данных для этого столбца как TEXT и надеялся, что это заставит SQL все время обрабатывать его как строку, но, похоже, это не так.
В своем исследовании я прочитал о функции CONCAT () и попробовал это:
UPDATE useraccs SET favourites = CONCAT(favourites,',30') WHERE id='10'
Это приводит к неудачному запросу. Логика кажется правильной, но это, очевидно, не то, как эта функция предназначена для использования.
Я признаю, что в теории, я мог бы просто взять первоначальную ценность favourites
и объединить его с новым значением в самом PHP, а затем отправить его в MySQL, но я чувствую, что ДОЛЖЕН быть способ сделать это в одном запросе … если я ошибаюсь, так и будет, но я ‘ Я уверен, что должен быть способ.
Используйте следующее для создания ’27, 30 ‘:
КОНВЕРТ (избранное, символ) + ‘, 30’
Других решений пока нет …