- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году Google заблокировал более 170 млн фальшивых отзывов на Картах
Это на 45% больше, чем в 2022 году
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Хочу сделать подобный запрос:
UPDATE `jos_content` SET `alias` = replace(`alias`, '-s-(.*)','') WHERE `catid` = 233
Но скорее всего не прокатит, как правильно прописать регулярку (любой символ) при запросах в sql ?
регулярки только на поиск совпадений. выражения замены, как во многих других реализациях регулярных выражений, не понимает.
ну функций то много разных. сооруди там что-нибудь.
если бы знал - соорудил :)
Как можно сократить урл (алиас) по тому примеру что я привел?
SELECT * FROM Persons WHERE City LIKE 's%'
"%" - данный знак является маской. Обозначает любые символы.
Правильно ли я понимаю что можно выполнить запрос так?
UPDATE `jos_content` SET `alias` = replace(`alias`, '-s-%','') WHERE `catid` = 233
как вариант можно попробовать так:
UPDATE `jos_content` SET `alias` = SUBSTRING(`alias`, LOCATE('-s-', `alias`), LENGTH(`alias`)-LOCATE('-s-', `alias`)) WHERE `catid` = 233;
только не советую без бэкапов - не проверял
Восстанавливаю бекап :) все алиасы исчезли и ссылки стали вида site.ru/categoriya/id а были site.ru/categoriya/id-alias
Из этого:
Хочу сделать подобный запрос:
UPDATE `jos_content` SET `alias` = replace(`alias`, '-s-(.*)','') WHERE `catid` = 233
Но скорее всего не прокатит, как правильно прописать регулярку (любой символ) при запросах в sql ?
я понял, что нужно обрезать `alias` у альясов окончания после '-s-' включительно. То есть было "/cat/my-url-s-123.html" стало "/cat/my-url". Собственно это и получилось.
В любом случае смысл как заменять строки должен быть понятен, для остальных вопросов:
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html
Да и кстати, если не все алиасы содержат '-s-', то надо добавить условие в WHERE LOCATE('-s-', `alias`) > 0
Нужно было обработать часть алиасов, которые заканчивались на конструкцию -s-
например
site.ru/categoriya/id-slovo-s-mudata
сделать
site.ru/categoriya/id-slovo
Но -s- такая конструкция есть не у всех
значит так должно получится:
UPDATE `jos_content` SET `alias` = SUBSTRING(`alias`, LOCATE('-s-', `alias`)+3, LENGTH(`alias`)-LOCATE('-s-', `alias`)+3) WHERE `catid` = 233 AND LOCATE('-s-', `alias`) > 0;
Восстанавливаю бекап :) Обрезалось но не стой стороны :)
Было так site.ru/categoriya/id-slovo-s-mudata
стало так site.ru/categoriya/id-mudata