Как выбрать из таблицы (MySQL) только русские записи?

Тема в разделе "Базы данных", создана пользователем Glory, 10 янв 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Glory

    Glory Создатель

    Регистр.:
    14 апр 2007
    Сообщения:
    30
    Симпатии:
    1
    Есть таблица (база MySQL), в ней записи на русском и на английском. Как выбрать только русские или только английские?
     
  2. Freeborn

    Freeborn Постоялец

    Регистр.:
    31 окт 2008
    Сообщения:
    62
    Симпатии:
    21
    В простейшем случае
    Код:
    SELECT `ячейка` FROM `таблица` WHERE `яячейка_для_выборки` REGEXP '[а-яА-Я]'
    вернет ячейки, в которых есть буквы а-я
     
    Glory нравится это.
  3. Glory

    Glory Создатель

    Регистр.:
    14 апр 2007
    Сообщения:
    30
    Симпатии:
    1
    спасибо, для моего случая этого достаточно
     
  4. Sakhalinec

    Sakhalinec Создатель

    Регистр.:
    8 янв 2009
    Сообщения:
    33
    Симпатии:
    0
    правильно понимаю , если в ячейке есть ещё и цифры, то будет REGEXP '[а-яА-Я0-9]'. да?
     
  5. grey109

    grey109

    Регистр.:
    3 апр 2007
    Сообщения:
    176
    Симпатии:
    19
    Все верно.
     
  6. sartiii

    sartiii Постоялец

    Регистр.:
    17 сен 2008
    Сообщения:
    105
    Симпатии:
    17
    Я бы порекомендовал не забыть про пробельные символы(добавить в регулярное выражение \s) и учесть знаки препинания. А то всякое бывает =)
     
  7. Freeborn

    Freeborn Постоялец

    Регистр.:
    31 окт 2008
    Сообщения:
    62
    Симпатии:
    21
    Зачем? Нужно выбрать например только РУССКИЕ записи. А русские записи содержат буквы а-я, так что задача решается данным запросом. Зачем чинить то, что не сломано?:)
     
  8. pavel012007

    pavel012007

    Регистр.:
    12 мар 2008
    Сообщения:
    210
    Симпатии:
    117
    Вот такая запись русская, но содержит [a-zA-Z]:
    Обычно английские записи НЕ содержат вставки русскоязычного текста. Как видно из примера, в русском тексте такое зачастую случается. Поэтому в данной задаче корректнее распознавать английские записи - т.е. REGEXP '[a-zA-Z]' плюс знаки препинания, цифры, спецсимволы - доллар и прочие решетки, пробел. Остальные записи, не попадающие под "английский" шаблон - "русские". Например, запись, аналогичная примеру выше - "русская", хотя содержит русские и латинские буквы.
     
Статус темы:
Закрыта.