MySQL: НЕ НРАВИТСЯ - PullRequest
       14

MySQL: НЕ НРАВИТСЯ

54 голосов
/ 18 марта 2011

У меня есть этот текст в моей БД,

categories_posts
categories_news
posts_add
news_add

И я не хочу выделять строки с помощью categories, я использую запрос примерно так:

SELECT *
    FROM developer_configurations_cms

    WHERE developer_configurations_cms.cat_id = '1'
    AND developer_configurations_cms.cfg_variables LIKE '%parent_id=2%'
    AND developer_configurations_cms.cfg_name_unique NOT LIKE '%categories%'

но он возвращает эти два в выводе также ...

categories_posts
categories_news

Как я могу игнорировать их в моем запросе?

Спасибо.

Ответы [ 2 ]

77 голосов
/ 18 марта 2011

categories_posts и categories_news начинаются с подстроки 'category_', тогда достаточно проверить, что developer_configurations_cms.cfg_name_unique начинается с 'category' вместо проверки, содержит ли она данную подстроку. Перевод всего этого в запрос:

SELECT *
    FROM developer_configurations_cms

    WHERE developer_configurations_cms.cat_id = '1'
    AND developer_configurations_cms.cfg_variables LIKE '%parent_id=2%'
    AND developer_configurations_cms.cfg_name_unique NOT LIKE 'categories%'
7 голосов
/ 18 марта 2011

Я не знаю, почему

cfg_name_unique NOT LIKE '%categories%' 

по-прежнему возвращает эти два значения, но, возможно, исключить их явно:

SELECT *
    FROM developer_configurations_cms

    WHERE developer_configurations_cms.cat_id = '1'
    AND developer_configurations_cms.cfg_variables LIKE '%parent_id=2%'
    AND developer_configurations_cms.cfg_name_unique NOT LIKE '%categories%'
    AND developer_configurations_cms.cfg_name_unique NOT IN ('categories_posts', 'categories_news')
...