2010-03-23 4 views
1

Итак, я работал с RLIKE, чтобы вытащить некоторые данные в новое приложение и в основном пользоваться им.Нужно использовать выражение MySQL RLIKE для исключения определенных строк, заканчивающихся конкретными символами.

На сегодняшний день я использую запросы RLIKE для возврата трех типов результатов (файлов, каталогов и всего прочего).

Запросы (и примеры результатов) следуют:

**All**: 

SELECT * FROM public WHERE obj_owner_id='test' AND obj_namespace 
RLIKE '^user/test/public/[-0-9a-z_./]+$' ORDER BY obj_namespace 

user/test/public/a-test/.comment 
user/test/public/a-test/.delete 
user/test/public/directory/ 
user/test/public/directory/image.jpg 
user/test/public/index 
user/test/public/site-rip 
user/test/public/site-rip2 
user/test/public/test-a 
user/test/public/widget-test 

**Files**: 

SELECT * FROM public WHERE obj_owner_id='test' AND obj_namespace 
RLIKE '^user/test/public/[-0-9a-z_./]+[-0-9a-z_.]+$' ORDER BY obj_namespace 


user/test/public/a-test/.comment 
user/test/public/a-test/.delete 
user/test/public/directory/image.jpg 
user/test/public/index 
user/test/public/site-rip 
user/test/public/site-rip2 
user/test/public/test-a 
user/test/public/widget-test 

**Directories**: 

SELECT * FROM public WHERE obj_owner_id='test' AND obj_namespace 
RLIKE '^user/test/public/[-0-9a-z_./]+/$' ORDER BY obj_namespace 

user/test/public/directory/ 

Это хорошо работает для вышеуказанных 3 основных сценариев, но при определенных ситуациях, я буду в том числе специальные «суффиксы» Я хотел бы быть исключены из результаты запросов (без необходимости прибегать к функциям PHP для этого).

Хорошим примером такой строки будет:

user/test/public/a-test/.delete 

Эти данные (есть несколько строк, то просто obj_namespace) считается удален и в Файлы и всех запросов типа я как это должно быть опущено в выражении, если это возможно.

То же самое относится и к /.comments и все такие мета-данные всегда будут находиться в том же формате:

/.[sometext] 

Я надеялся использовать эту функцию широко на протяжении всей моей приложения, так что я надеюсь, что там может быть очень простым ответом. (кресты пальцы)

В любом случае, спасибо как всегда за любые ответы и отзывы.

ответ

0

Похоже, вы можете просто добавить еще одно условие для каждого запроса:

... AND obj_namespace NOT RLIKE '/[.][a-z]+$' ... 
+0

Что StackOverflow нужно это «а им пиво» ​​кнопку для микро пожертвования через PayPal или этажерки. Спасибо, Мартин. – zmg

 Смежные вопросы

  • Нет связанных вопросов^_^