The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Регулярные выражения. Поиск по диапазону"
Вариант для распечатки  
Пред. тема | След. тема 
Форум WEB технологии (MySQL)
Изначальное сообщение [ Отслеживать ]

"Регулярные выражения. Поиск по диапазону"  +/
Сообщение от Lion__ (ok) on 30-Ноя-10, 22:11 
Допустим есть таблица с полем field
Имеются записи:
aa77||bb22|cc45
aa2||bb86|cc19
aa165||bb48|cc37
aa64||bb39|cc48

Мне нужно выбрать поля допустим где есть значения aaN, где N это диапазон от 60 до 80.

Как правильно составить запрос что бы получить эти поля

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Регулярные выражения. Поиск по диапазону"  +/
Сообщение от Etch on 01-Дек-10, 08:20 
Примерно как-то так:

/^aa([67][0-9]|80)\|\|/

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Регулярные выражения. Поиск по диапазону"  +/
Сообщение от Lion__ (ok) on 02-Дек-10, 18:31 
> Примерно как-то так:
> /^aa([67][0-9]|80)\|\|/

Ну я дал для примера значения, но в реальности они могут быть разными

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Регулярные выражения. Поиск по диапазону"  +/
Сообщение от Lion__ (ok) on 02-Дек-10, 21:35 
>> Примерно как-то так:
>> /^aa([67][0-9]|80)\|\|/
> Ну я дал для примера значения, но в реальности они могут быть
> разными

Например если брать только диапазон чисел, то вот
64-120
будет:
(6[4-9]|[7-9][0-9]|1[01][0-9]|120)

Правильно?? Вот как такой генератор строки на php сделать?))

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Регулярные выражения. Поиск по диапазону"  +/
Сообщение от Pahanivo (ok) on 02-Дек-10, 22:22 
>>> Примерно как-то так:
>>> /^aa([67][0-9]|80)\|\|/
>> Ну я дал для примера значения, но в реальности они могут быть
>> разными
> Например если брать только диапазон чисел, то вот
> 64-120
> будет:
> (6[4-9]|[7-9][0-9]|1[01][0-9]|120)
> Правильно?? Вот как такой генератор строки на php сделать?))

а не проще базу к нормальному виду привести? )

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Регулярные выражения. Поиск по диапазону"  +/
Сообщение от Lion__ (ok) on 03-Дек-10, 00:14 
>>>> Примерно как-то так:
>>>> /^aa([67][0-9]|80)\|\|/
>>> Ну я дал для примера значения, но в реальности они могут быть
>>> разными
>> Например если брать только диапазон чисел, то вот
>> 64-120
>> будет:
>> (6[4-9]|[7-9][0-9]|1[01][0-9]|120)
>> Правильно?? Вот как такой генератор строки на php сделать?))
> а не проще базу к нормальному виду привести? )

Не проще, это всё динамика, те же aaa, bbb - могут существовать, а могут и не существовать.


Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

9. "Регулярные выражения. Поиск по диапазону"  +/
Сообщение от Pahanivo (ok) on 03-Дек-10, 13:28 
> Не проще, это всё динамика, те же aaa, bbb - могут существовать,
> а могут и не существовать.

ну дак может тогда стоит четко и полно изложить исходную задачу
а то у тебя формат меняется от поста к посту

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

6. "Регулярные выражения. Поиск по диапазону"  +/
Сообщение от Etch on 03-Дек-10, 00:53 
> Правильно?? Вот как такой генератор строки на php сделать?))

Похоже, что вам нужно перегнать эти данные в SQL базу данных.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

7. "Регулярные выражения. Поиск по диапазону"  +/
Сообщение от Lion__ (ok) on 03-Дек-10, 01:03 
>> Правильно?? Вот как такой генератор строки на php сделать?))
> Похоже, что вам нужно перегнать эти данные в SQL базу данных.

Они и так в базе, но хранятся в одном поле в таком виде как в первом посте, создавать под каждый параметр поле не дело, т.к. надо переделывать будет структуру

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "Регулярные выражения. Поиск по диапазону"  +/
Сообщение от Etch on 03-Дек-10, 12:52 
Вообще-то это единственный верный вариант. А не дело, это когда сначала достают данные из базы, а потом регекспами и другими проверками проверяют какие же из этих данных на самом деле нужны...

Ну если уж очень хочется, то я бы сделал как-то так:
if( ($str =~ m/^aa(\d+)/) && ($1 >= $min) && ($1 <= $max) ){
   ...
}

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру