Подтвердить что ты не робот

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

У меня есть этот текст в моем db,

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

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

Спасибо.

4b9b3361

Ответ 1

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

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%'

Ответ 2

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

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')