webentwicklung-frage-antwort-db.com.de

MySQL: NICHT WIE

Ich habe diesen Text in meiner Datenbank,

categories_posts
categories_news
posts_add
news_add

Und ich möchte die Zeilen nicht mit categories auswählen, ich benutze eine Abfrage wie diese,

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

aber es gibt diese beiden auch in der Ausgabe zurück ...

categories_posts
categories_news

Wie kann ich sie in meiner Abfrage ignorieren?

Vielen Dank.

54
laukok

categories_posts und categories_news Beginne mit dem Teilstring 'categories_', dann genügt es zu überprüfen, dass developer_configurations_cms.cfg_name_unique beginnt mit 'categories', anstatt zu prüfen, ob es den angegebenen Teilstring enthält. Das alles in eine Abfrage übersetzen:

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

Ich weiß nicht warum

cfg_name_unique NOT LIKE '%categories%' 

gibt diese beiden Werte weiterhin zurück, schließt sie jedoch möglicherweise explizit aus:

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