За последние 24 часа нас посетили 66874 программиста и 1639 роботов. Сейчас ищут 905 программистов ...

Поиск слов состоящих ровно из 4 символов от А-Я и от а-я

Тема в разделе "MySQL", создана пользователем kilogram, 28 июн 2012.

  1. kilogram

    kilogram Активный пользователь

    С нами с:
    19 мар 2012
    Сообщения:
    116
    Симпатии:
    0
    Вот так пробую не выводит ничего вообще в результате:
    Код (Text):
    1. select name1 from cat where name1 REGEXP "^[А-Яа-я]{4}$";
    и так не пашет:
    Код (Text):
    1. select name1 from cat where name1 REGEXP "^.{4}$";
    и так не хочет:
    Код (Text):
    1. select name1 from cat where name1 REGEXP "^....$";
    и так:
    Код (Text):
    1. select name1 from cat where name1 REGEXP "^\w{4}$";
    Вот такая таблица, фото ниже. Нужно чтобы возвратило слова состоящие из 4 символов.

    Вот так работает, но я хотел бы регуляркой научиться такие фокусы

    Код (Text):
    1.  
    2. select name1 from cat where name1 LIKE '____';
    Как сделать такое же регуляркой?
    [​IMG]
     
  2. HanGebriel

    HanGebriel Активный пользователь

    С нами с:
    28 июн 2012
    Сообщения:
    6
    Симпатии:
    0
    Попробуйте так select name1 from cat where CHAR_LENGTH( name1 ) = 4.
     
  3. Chushkin

    Chushkin Активный пользователь

    С нами с:
    17 дек 2010
    Сообщения:
    1.062
    Симпатии:
    91
    Адрес:
    Мещёра, Центр, Болото N3
    Регулярка в mySQL своя собственная и заметно урезанная.
    см. http://dev.mysql.com/doc/refman/4.1/en/regexp.html
    Кроме того, регуляркой надо пользоваться только тогда, когда действительно необходимо (не использует ключи)

    Добавлено спустя 10 минут 20 секунд:
    Да, а регулярка будет что-то вроде:
    Код (Text):
    1. ...regexp '^[a-zA-Z][a-zA-Z][a-zA-Z][a-zA-Z][ ]*$'
     
  4. wds

    wds Активный пользователь

    С нами с:
    27 июл 2012
    Сообщения:
    16
    Симпатии:
    0
    Код (Text):
    1. select name1 from cat where loname1 REGEXP "[а-я]" and char_length(name1)=4;