Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Удалить часть строки до символа "/" / 11 сообщений из 11, страница 1 из 1
29.05.2014, 03:37:48
    #38655199
smarton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить часть строки до символа "/"
Имею строки следующего вида:
8/o_068c8c18e1cbbc0.jpg
17/o_64be33cfb12833e.jpg
24133/o_cb9c1d2fa27472d.jpg

Необходимо в каждой строке удалить значения до символа "/" (без кавычек) включительно. Перед символом "/" разное количество значений (от 1 до 5).
*Красным выделено то, что необходимо удалить.

Какую команду использовать и как ее прописать?
UPDATE table SET field = CONCAT(
UPDATE table SET field = SUBSTR(
...
Рейтинг: 0 / 0
29.05.2014, 07:47:42
    #38655221
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить часть строки до символа "/"
...
Рейтинг: 0 / 0
29.05.2014, 20:54:01
    #38656389
smarton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить часть строки до символа "/"
Спасибо. Вроде просто, но на деле... Начал делать, не получается, допускаю ошибки. Подскажите что не так.

Код: sql
1.
2.
UPDATE users SET user_cover = SUBSTRING_INDEX('user_cover', '/', -1)
SELECT user_cover, SUBSTRING_INDEX(user_cover,'/',-1) FROM users
...
Рейтинг: 0 / 0
29.05.2014, 21:09:06
    #38656399
smarton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить часть строки до символа "/"
Помучился еще немного и сделал:
Код: sql
1.
UPDATE users SET user_cover = CONCAT(SUBSTRING_INDEX(user_cover, '/', -1))


Забыл про функцию CONCAT
...
Рейтинг: 0 / 0
30.05.2014, 05:28:56
    #38656572
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить часть строки до символа "/"
smarton,

а зачем тут конкат? первый запрос делал то, что надо
впрочем, и этот делает, только он длиннее
...
Рейтинг: 0 / 0
30.05.2014, 15:02:21
    #38657124
smarton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить часть строки до символа "/"
tanglirа зачем тут конкат? первый запрос делал то, что надо


Я тоже так думал, но если использовать запрос
Код: sql
1.
UPDATE users SET user_cover = SUBSTRING_INDEX('user_cover', '/', -1)


в колонке user_cover поле заполняется таким же значением - "user_cover". Запрос не обрезает значения до символа "/", а полностью заменяет текущее значение (24133/o_cb9c1d2fa27472d.jpg) на user_cover.

То есть, если обращаться напрямую к функции SUBSTRING_INDEX, она не работает должным образом, если обращаться через CONCAT - выполняет необходимую задачу. Сам не могу понять почему именно CONCAT решает проблему, ведь функция объединяет строки. Возможно, что не только через CONCAT будет выполняться задача, возможно даже не совсем правильно использовать именно CONCAT в данном случае, но работает.

Если кто-то может объяснить, буду рад стать немного умнее ))))
...
Рейтинг: 0 / 0
30.05.2014, 16:36:14
    #38657277
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить часть строки до символа "/"
smartonЕсли кто-то может объяснитьА задлянафига вы название поля берёте в кавычки? Естественно, при этом получается строка "user_cover", ну и результат соответствующий.
...
Рейтинг: 0 / 0
30.05.2014, 16:36:46
    #38657279
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить часть строки до символа "/"
smartonСам не могу понять почему именно CONCAT решает проблемупотому что там кавычек нет
...
Рейтинг: 0 / 0
30.05.2014, 16:49:33
    #38657294
smarton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить часть строки до символа "/"
tanglirА задлянафига вы название поля берёте в кавычки? Естественно, при этом получается строка "user_cover", ну и результат соответствующий.
Точно! Я реально не обратил внимание на кавычки и начал искать проблему в другом. Все гениальное - просто)))
Благодарю, что ткнули носом ))
...
Рейтинг: 0 / 0
30.05.2014, 18:40:05
    #38657409
vip-y
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить часть строки до символа "/"
smarton,
если у вас будет более одного аргумента
CONCAT не советую использовать, всегда меняйте на CONCAT_WC
CONCAT Возвращает NULL, если какой либо из аргументов является NULL, а CONCAT_WC их пропускает
...
Рейтинг: 0 / 0
30.05.2014, 19:00:18
    #38657432
smarton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удалить часть строки до символа "/"
vip-yесли у вас будет более одного аргумента
CONCAT не советую использовать, всегда меняйте на CONCAT_WC
CONCAT Возвращает NULL, если какой либо из аргументов является NULL, а CONCAT_WC их пропускает
Я понял, спасибо за уточнение.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Удалить часть строки до символа "/" / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]