На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! информация о разделе
user posted imageДанный раздел предназначается исключительно для обсуждения вопросов использования языка запросов SQL. Обсуждение общих вопросов, связанных с тематикой баз данных - обсуждаем в разделе "Базы данных: общие вопросы". Убедительная просьба - соблюдать "Правила форума" и не пренебрегать "Правильным оформлением своих тем". Прежде, чем создавать тему, имеет смысл заглянуть в раздел "Базы данных: FAQ", возможно там уже есть ответ.

Модераторы: Akina
Страницы: (2) 1 [2]  все  ( Перейти к последнему сообщению )  
> Изменить параметры запроса поиска.
    MIF
    Тогда уж
    ExpandedWrap disabled
      SELECT *
      FROM @T
      WHERE LEN (metakey) - LEN(REPLACE(metakey, ',', '')) = (LEN(metakey) - LEN(REPLACE(',' + metakey,',razdel-','')) - 1)/8

    какой смысл проверять по отдельности первое и остальные вхождения?
    Есть претензии ко мне как к модератору? читайте Правила, разделы 5 и 6, и действуйте соответственно.
    Есть претензии ко мне как к участнику? да ради бога.
    Не нравятся мои ответы? не читайте их.
    В общем, берегите себя. Нервные клетки не восстанавливаются.
      Если по полю metakey есть индекс. то мой запрос будет работать быстрее.
      Мои религиозные убеждения не позволяют мне комментировать код.
      Моё мировоззренье таково: в программе комментария ни одного!
        К сожалению, ни 1 из запросов не отработал. Написал в ТП: меня сам сервер хостера заблокировал.
          Отработал такой. Но вернул все равно 0 строк - при наличии одной статьи с тегами "раздел-идеи,раздел-прочее,раздел-решение".

          SELECT *FROM joomla_content
          WHERE metakey like 'раздел-%'
          AND LENGth (metakey) - LENGth(REPLACE(metakey, ',', ''))= (LENGth(metakey) -
          LENGth(REPLACE(metakey,',раздел-','')))/8;

          Добавлено
          Цитата MIF @

          Точки нет в конце тегов. Может, в этом дело? Замена в вашем запросе "8" на "7" не помогает.
            Проблема в том, что ты не запостил структуру таблицы. Код запроса зависит от типа поля metakey. Попробуй Заменить /8 на /16 и /1 на /2. Может сработает.
            ExpandedWrap disabled
              DECLARE @T TABLE(metakey nvarchar(max))
               
              INSERT INTO @T(metakey) VALUES(N'razdel-128.')
              INSERT INTO @T(metakey) VALUES(N'me,razdel-12.')
              INSERT INTO @T(metakey) VALUES(N'razdel-128,razdel-me,razdel-16.')
              INSERT INTO @T(metakey) VALUES(N'razdel-128,razdel-merazdel-16.')
              INSERT INTO @T(metakey) VALUES(N'razdel-128,razdel-me,anotherrazdel,razdel-16.')
               
              SELECT *
              FROM @T
              WHERE metakey like 'razdel-%'
              AND (LEN (metakey) - LEN(REPLACE(metakey, ',', '')))/2=  (LEN(metakey) -  LEN(REPLACE(metakey,',razdel-','')))/16
            Сообщение отредактировано: MIF -
            Мои религиозные убеждения не позволяют мне комментировать код.
            Моё мировоззренье таково: в программе комментария ни одного!
              Цитата MIF @


              Не сработало.

              Что если вручную прописать все теги "раздел-что_то", которые имеются? На примере "раздел-IT".
              Прикреплённый файлПрикреплённый файл2020_09_03_180407.png (152,42 Кбайт, скачиваний: 13)

              Сообщения были разделены в тему "spam"
              1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
              0 пользователей:


              Рейтинг@Mail.ru
              [ Script Execution time: 0,0816 ]   [ 17 queries used ]   [ Generated: 1.10.20, 15:22 GMT ]