За последние 24 часа нас посетили 22702 программиста и 1039 роботов. Сейчас ищут 427 программистов ...

Реализация выборки с логикой /^[а-яА-Я]*A/i

Тема в разделе "MySQL", создана пользователем AterCattus, 3 сен 2008.

  1. AterCattus

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

    С нами с:
    6 фев 2008
    Сообщения:
    80
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Доброго времени суток. Возникла проблема с выборкой элементов из БД по имени. Но имена хранятся в формате "<2-3 слова по-русски> <английские слова>". И нужно выбирать по первой английской букве. Ну, как в subj. регулярка.

    Что-то ничего хорошего в голову не пришло. Варианты русского текста могут меняться, т.е. сделать
    [sql]name LIKE 'русский_текст R%' OR name LIKE 'русский_текст R%'[/sql]
    к примеру нельзя.

    Приму любые варианты. И заранее спасибо :)
     
  2. Ti

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

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    1. mysql поддерживает регулярные выражения
    2. мб стоит вынести букву по которой идет выборка отдельным полем?
     
  3. DarkElf

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

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    а что мешает юзать регулярку, которая в названии темы?:)
     
  4. AterCattus

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

    С нами с:
    6 фев 2008
    Сообщения:
    80
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Не знал про поддержку регулярок в MySQL. Откровение для меня. Проблема решена. Спасибо!

    P.S. Не могу я вынести эту букву. БД не моя, уже не маленькая и на ней уже давно функционирует сайт со своей странной админкой. Мне нужно было ввести новый функционал на этом сайте с минимальными изменениями.

    Если кому интересно: [sql]WHERE name REGEXP '^[^A-Za-z]*[[:space:]]*$id'[/sql].