- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
А переменная то передается?
Попробуйте в запросе вместо переменной поставить mysite.ru
А разве нельзя все же написать правильное регулярное выражение?
Вам же ответили, что в SQL нет регулярных выражений. Они там попросту не нужны. БД используется не для этого. Выбирайте данные как есть и разбирайте их в php на части.
У моей организации данных есть и плюс, если я захочу хранить в этом поле вместо 10 ссылок, 20 или 100, то я могу просто увеличить число полей в форме ввода (одну циферку в цикле) и весь сайт будет это поддерживать.
угу. и Ваш сервер просто умрет. :D советую все же прочитать для чего используются БД.
ps. мусор выбирается до записи в БД, а не после. ;)
Можно конечно, НО у меня поле может содержать до 10 ссылок, разделенных переводом строк, т.е. в поле могут быть ссылки с $SITE_DOMEN и без него одновременно. Если бы поле содержало всего одну ссылку, я бы и тему не заводил бы :)
Нужно поле screens выделить в отдельную таблицу и связать с таблицей сайтов, потом спокойно делать выборку по LIKE. То есть нужно избавится от переводов строк, хранить данные через перевод строки в одном поле и потом по ним искать - не самая лучшая идея
Вам же ответили, что в SQL нет регулярных выражений. Они там попросту не нужны. БД используется не для этого. Выбирайте данные как есть и разбирайте их в php на части.
угу. и Ваш сервер просто умрет. :D советую все же прочитать для чего используются БД.
ps. мусор выбирается до записи в БД, а не после. ;)
Как нет выражений регулярных, а это что тогда:
http://www.tutorialspoint.com/mysql/mysql-regexps.htm
?
---------- Добавлено 10.01.2016 в 11:21 ----------
Нужно поле screens выделить в отдельную таблицу и связать с таблицей сайтов, потом спокойно делать выборку по LIKE. То есть нужно избавится от переводов строк, хранить данные через перевод строки в одном поле и потом по ним искать - не самая лучшая идея
Над этим вариантом подумывал уже, хранить ссылки в отдельной таблице, с указанием id записи из основной, тогда также будет возможно увеличивать кол-во строк без каких-либо значительных переделок.
Просто там получается, что поиск по этому полю и не идет никогда, на сайте идет поиск по id, а содержимое этого поля просто берется, загоняется в массив на php и выводится. Это я делаю скрипт обслуживания для админа, который запускается от силы раз в месяц, поэтому и не хочу все переписывать из-за одного админского скрипта...
К сожалению, здесь никто не может вразумительно ответить как правильно писать выражения для regexp, а советуют любые пути обхода этого...
---------- Добавлено 10.01.2016 в 11:27 ----------
А переменная то передается?
Попробуйте в запросе вместо переменной поставить mysite.ru
Завтра посмотрю на рабочем компе, уже у самого два сомнения возникли:
- не передается переменная
- переменная передается, но в ней нужно экранировать точку.
eugene_o, не совсем понимаю, Вы здесь спрашиваете или хотите что-то доказать? если спрашиваете, то ответ Вам давно дали. все Ваши проблемы - из-за неправильной организации данных. и, как мне кажется, не понимания, зачем вообще нужна БД.
если же все ответы для Вас не верные, а свой вариант Вы считаете единственно верным - разбирайтесь сами.
eugene_o, не совсем понимаю, Вы здесь спрашиваете или хотите что-то доказать? если спрашиваете, то ответ Вам давно дали. все Ваши проблемы - из-за неправильной организации данных. и, как мне кажется, не понимания, зачем вообще нужна БД.
Я здесь спрашиваю, как правильно написать regexp, если вы еще не поняли..., а не как правильно переделать весь сайт. Я знаю для чего нужна БД, а также знаю про рациональное использование времени - можно тысячу раз вылизывать код и иметь тот же функционал или можно не тратить зря время на идеально правильную структуру, когда можно это время потратить на более важные в данный момент вопросы.
Варианты верные, которые предложены и я их знаю прекрасно, просто хочу решить проблему всего одним regexp, не прибегая к переписыванию кода...
Знаю проблемы своего движка, он написан в 2003 году и это не единственная там проблема, просто задачи сейчас другие...
---------- Добавлено 10.01.2016 в 15:57 ----------
eugene_o,
если же все ответы для Вас не верные, а свой вариант Вы считаете единственно верным - разбирайтесь сами.
Вернее будет сказать: я не знаю как писать regexp, поэтому разбирайтесь без меня.
можно построить монстровидный запрос через substring_index...
А еще заменить mysite.ru на что-то и уже потом искать типа
Регулярку сам донастроишь
можно построить монстровидный запрос через substring_index...
А еще заменить mysite.ru на что-то и уже потом искать типа
Регулярку сам донастроишь
Интересно как, вот и регулярные выражения нашлись в mysql, спасибо, уже есть куда копать!
---------- Добавлено 11.01.2016 в 07:48 ----------
Вот такой вариант работает, как ни странно:
Результаты:
Отображает строки 0 - 4 (5 всего, запрос занял 0.0605 сек.)
Поиск производился по 10315 строкам.
Меня вполне устраивает результат! Учитывая, что скрипт будет запускаться пару раз в месяц, а то и реже.
Вообще идеально решение!
Может что еще не учел..., но пока не вижу проблем абсолютно с этим запросом!
---------- Добавлено 11.01.2016 в 07:49 ----------
Спасибо всем за предложенные решения!