Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: SQL pattern
 
 автор: brokonyer   (07.03.2008 в 17:52)   письмо автору
 
 

Вот столкнулся с таким видом запросов и хотел бы узнать можно реализовать что то вроде этого?

в параметр `kataloq` varchar(255) записывается данные в форме
cat1_1
cat1_1/cat2_1
cat1_1/cat2_2
.....
cat1_1/cat2_1/cat3_1
cat1_1/cat2_1/cat3_2
....
cat1_1/cat2_1/cat3_1/cat4_1
.....
и т.д.

А вот если запросить данные в следующему порядку "SELECT * FROM `tb` WHERE `kataloq` LIKE 'cat1_1/%' " либо "SELECT * FROM `tb` WHERE `kataloq` LIKE 'cat1_1/cat2_1/%' " и т.д. выдаст все подкатегории, возможно ли ограничить как то?

Задача в том чтоб при запросе получить каталоги "cat1_1" выдавал все "cat1_1/cat2_1 - cat1_1/cat2_n", а не все, включая их подкатегории.

и в том числе для "cat1_1/cat2_1" выдавал "cat1_1/cat2_1/cat3_1 - cat1_1/cat2_1/cat3_n"

   
 
 автор: brokonyer   (08.03.2008 в 14:03)   письмо автору
 
   для: brokonyer   (07.03.2008 в 17:52)
 

Гм.. все не так сложно как на первый взгяд,


SELECT * FROM `tb` WHERE `kataloq` REGEXP 'cat1_1/[^/]*';
SELECT * FROM `tb` WHERE `kataloq` REGEXP 'cat1_1/cat2_1/[^/]*';
....

UPDATE: Помоему я правильно написал, но все равно результат тот же.

UPDATE: Не помогло даже следующие:


SELECT * FROM `tb` WHERE `kataloq` REGEXP 'cat1_1/[a-z0-9_]';
SELECT * FROM `tb` WHERE `kataloq` REGEXP 'cat1_1/cat2_1/[a-z0-9_]';

   
 
 автор: brokonyer   (08.03.2008 в 14:55)   письмо автору
 
   для: brokonyer   (08.03.2008 в 14:03)
 

Хех, всегда что то мелочь остается...

SELECT * FROM `tb` WHERE `kataloq` REGEXP 'cat1_1/([^/]*)$'; 

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования