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

Модераторы: Akina
  
> Регулярные выражения в MySQL
    Мне интересно работают ли комманды регулярных выражений означающие край слова /b, в perl выражение работает, а в MySQL нет.
    И другой вопрос, как другим методом можно найти слово целиком в поле таблицы.
      Используй функцию LIKE:
      SELECT *
      FROM Table1
      WHERE Name LIKE "K*"

      Выберет записи, у которых Name начинается с буквы "K"

      Вроде бы, все регулярные выражения работают (возможно, несколько отличается синтаксис).
      Сообщение отредактировано: tserega -
        LIKE не ищет слова целиком wink.gif нужно найти слово, например в строке "один два три" слова "один" найдет, а "оди" нет, поэтому и нужны регулярные вырадения. А символ * в LIKE не действунт wink.gif, там два зарезирвированных % означает любой символ и _ один символ
          есть еще RLIKE если не ошибаюсь, справочника под рукой нет. Там можно использовать _некоторые_ регулярные выражения. я написал _некоторые_ потому что в сранении с Perl laugh.gif ...

          Но через LIKE работает быстрее.
            Знаю я это, называется REGEXP wink.gif народ, отвечайте на вопрос, он в первом посте.
              если надо найти слово целиком, то можно так

              тра-ляля LIKE '% один %' OR тра-ляля LIKE 'один %' OR тра-ляля LIKE '% один'
                locate("слово","строка поиска")
                вернет позицию с которой начинается совпадение _слова_ в _строка поиска_ или 0 если совпадений нету.
                  Из мануала по mysql:
                  [[:<:]]

                  [[:>:]]
                  Эти выражения устанавливают соответствие с нулевой строкой в начале и в конце слова соответственно. Слово определяется как последовательность символов слова, которой не предшествуют и за которой не следуют символы слова. Под символом слова понимается любая буква или цифра (как определено
                  в ctype(3)) или подчеркивание (_).
                  mysql> SELECT "a word a" REGEXP "[[:<:]]word[[:>:]]"; -> 1
                  mysql> SELECT "a xword a" REGEXP "[[:<:]]word[[:>:]]"; -> 0
                  1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                  0 пользователей:


                  Рейтинг@Mail.ru
                  [ Script execution time: 0,0489 ]   [ 14 queries used ]   [ Generated: 20.05.24, 04:22 GMT ]