2012-07-24 3 views
0

J'ai une requête que j'utilise les travaux, mais maintenant j'ai besoin de le modifier afin qu'il exclut les lignes si elles ont certaines données dans un champ.MySQL - Tout sélectionner SANS MOTIF requête

Voici le code actuel:

SELECT oc_ieentry,oc_sysitem,oc_item,oc_itemdesc,oc_purchasedate,oc_url 
FROM catalog 
WHERE oc_purchasedate >= date_sub(current_date, interval 21 day) 
ORDER BY oc_item ASC 

Ce que je dois faire est d'ajouter une déclaration là-dedans que si oc_ieentry comme 1, alors ces lignes ne doivent pas être présentés.

+0

vous voulez dire 'oc_ieentry PAS COMME 1' Je ne sais pas ce que' LIKE 1' veut dire par – mask8

Répondre

1

Essayez ceci:

SELECT 
oc_ieentry,oc_sysitem,oc_item,oc_itemdesc,oc_purchasedate,oc_url 
FROM catalog 
WHERE (oc_purchasedate >= date_sub(current_date, interval 21 day)) 
AND (oc_ieentry NOT LIKE 1) 
ORDER BY oc_item ASC 
+0

Merci, je pensais à cela à l'envers. – James

0

Ajouter une condition supplémentaire à votre O WH?

... 
WHERE oc_purchasedate >= date_sub(current_date, interval 21 day) AND oc_ieentry <> 1 
... 
1

Vous pouvez ajouter une autre condition dans la clause WHERE, tels que:

SELECT oc_ieentry,oc_sysitem,oc_item,oc_itemdesc,oc_purchasedate,oc_url 
FROM catalog 
WHERE 
    oc_purchasedate >= date_sub(current_date, interval 21 day) 
    AND oc_ieentry != 1 
ORDER BY oc_item ASC 
+0

Techniquement, '! =' N'est pas compatible avec SQL ANSI. L'opérateur '<>' est l'opérateur ANSI-correct not-equals. Alors que les systèmes de bases de données les plus populaires supportent aujourd'hui '! =', Cela me semble encore mal. – cdhowie

+0

J'ai utilisé MySQL pendant des années et je n'ai jamais rencontré de problème avec '! ='. T-SQL, oui jusqu'à mi-récemment - mais pas MySQL. http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html montre également le support de '! ='. – newfurniturey

+0

C'est juste une préférence personnelle. si vous ne suivez qu'ANSI SQL, vous manquerez beaucoup de bonnes choses fournies par MySQL – mask8

0

Vous pouvez utiliser le mot-clé NOT dans la clause WHERE:

SELECT * from products WHERE prod_price NOT IN (49, 100, 999); 

Cela aide-t-il? ou?