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
Как я могу игнорировать их в моем запросе?
Спасибо.
Ответы
Ответ 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')