Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> не получаются регулярные выражения 
:(
    Опции темы
zammar
Дата 22.1.2010, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 289
Регистрация: 30.10.2008

Репутация: нет
Всего: нет



строка field вида = "747|758|24|4|54|12548|3564|748|2458|15|4|458|42|"

Код

SELECT filed 

FROM table 

WHERE field  RLIKE '747\\|(?:[0-9]+\\|){0, здесь задаю кол-во пропущенных секций}748\\|'



нужно достать записи где есть например 747| и 748|, и чтоб между ними можно было задать количество пропущенный секций. 
в примере выше между 747| и 748|  6 секций "758|24|4|54|12548|3564|"

У меня не работает. говорит: "#1139 - Got error 'repetition-operator operand invalid' from regexp "
В чем ошибка не пойму?
PM   Вверх
Zloxa
Дата 22.1.2010, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



Цитата(zammar @  22.1.2010,  11:20 Найти цитируемый пост)
?:

не понял зачем это.

Код

SQL> select count(1) from dual
  2  where regexp_like('747|758|24|4|54|12548|3564|748|2458|15|4|458|42|'
  3                   ,'747\|([0-9]+\|){6}748\|');
 
  COUNT(1)
----------
         1
SQL> select count(1) from dual
  2  where regexp_like('747|758|24|4|54|12548|3564|748|2458|15|4|458|42|'
  3                    ,'747\|([0-9]+\|){7}748\|');
 
  COUNT(1)
----------
         0


Добавлено через 13 секунд
зы. мой пример не для маси


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
zammar
Дата 22.1.2010, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 289
Регистрация: 30.10.2008

Репутация: нет
Всего: нет



Моя ошибка не указал базу. MySQL 5.

?: - а это группировка без захвата. Я правда не знаю в sql есть такое или нет?!
PM   Вверх
Zloxa
Дата 22.1.2010, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



Цитата(zammar @  22.1.2010,  12:19 Найти цитируемый пост)
есть такое или нет

а нужно оно тут?

Добавлено через 55 секунд
во первых оно без захвата по умолчанию, афейк. во вторых, мне думется, на него и ругается.


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
zammar
Дата 22.1.2010, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 289
Регистрация: 30.10.2008

Репутация: нет
Всего: нет



Если и на него ругается, то значит не только на него(и еще на что-то), потому как и без него тоже самое бывает.
Я по всякому уже пробовал.
PM   Вверх
Zloxa
Дата 22.1.2010, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



почему двойной слэш?
Цитата(zammar @  22.1.2010,  11:20 Найти цитируемый пост)
\\




--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
zammar
Дата 22.1.2010, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 289
Регистрация: 30.10.2008

Репутация: нет
Всего: нет



Честно говоря не знаю?!

пробовал проще запрос делать:

Код

SELECT filed 

FROM table 

WHERE field  RLIKE '747\|'


Так ругается:
#1139 - Got error 'empty (sub)expression' from regexp 

А с двойным слэшем отрабатывает. 
?????? smile 
PM   Вверх
Zloxa
Дата 22.1.2010, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



Цитата(zammar @  22.1.2010,  13:10 Найти цитируемый пост)
Честно говоря не знаю?!

ответ не правильный 
правильный такой:
Цитата

Because MySQL uses the C escape syntax in strings (for example, “\n” to represent the newline character), you must double any “\” that you use in your REGEXP strings.

тут

ну а таквобщем, у мну идей больше нет. smile 


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
skyboy
Дата 22.1.2010, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 15
Всего: 260



Цитата(Zloxa @  22.1.2010,  11:25 Найти цитируемый пост)
во первых оно без захвата по умолчанию, афейк. во вторых, мне думется, на него и ругается. 

угу. нету такого. 
PM MAIL   Вверх
zammar
Дата 22.1.2010, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 289
Регистрация: 30.10.2008

Репутация: нет
Всего: нет



Ну да ладно.
Спасибо! smile 

Буду менять структуру.
PM   Вверх
Zloxa
Дата 22.1.2010, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



Цитата(zammar @  22.1.2010,  17:12 Найти цитируемый пост)
Буду менять структуру. 

думается, это было бы разумно, даже еслибы запрос удался.

Добавлено через 31 секунду
 smile 


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.0569 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.