0
votes

Laravel où la clause ne fonctionne pas pour les valeurs nulles

J'ai un clients code> table et client code> comme modèle. J'essaie d'obtenir tous les clients à l'exception de la catégorie client avec ID 1. Le Customer_Category_ID code> peut être nullable.

J'ai suivi de la requête suivante. P>

Customer::where('customer_category_id', '!=', 1)->with('customerMeta')->get();


1 commentaires

Voir ici pour la comparaison null.


5 Réponses :


2
votes

car null n'est pas non plus égal à 1 . Vous devriez probablement ajouter -> whérenotnull ('client_category_id') à votre requête: xxx


3 commentaires

J'ai essayé, mais j'ai besoin de données avec la catégorie NULL et que la catégorie n'est pas égale à 1


Désolé je n'ai pas lu votre question assez bien. Dans ce cas, votre requête doit fonctionner sauf si la relation pour -> avec ('Customateta') est basée sur la colonne client_category_id


Le client de la clientèle est associé à partir de l'ID client non de la catégorie client



0
votes

Cette requête devrait fonctionner.

Vous pouvez essayer de l'exécuter dans Artisan Tinker code>. Avant d'exécuter la requête Activer la recherche de la requête: P> xxx pré>

puis exécutez la requête. P>

après, exécutez: P>

DB::getQueryLog();


0 commentaires

0
votes

Changer votre requête comme ceci: xxx

car le 1 signifie également true , vous devez donc utiliser une chaîne.


3 commentaires

Frère, quelle est la différence de la requête que j'ai ajoutée?


Veuillez expliquer ce que vous avez changé et pourquoi, de sorte que d'autres puissent en apprendre


Essayez juste. Au plus, cela ne fonctionnera pas. Mais je pense que ça va.



0
votes

Si vous souhaitez renvoyer la catégorie null aussi, vous pouvez utiliser whérenull xxx

ou vous pouvez utiliser plusieurs clauses comme ceci: xxx


2 commentaires

Vous ne pouvez pas comparer null avec un = . Vous devez utiliser est ou n'est pas selon le contexte.


Cela vérifiera la catégorie NULL et ne correspond pas à 1 qui retournera le résultat vide. J'ai besoin de catégorie nulle ou pas d'équivaut



7
votes

Cela devrait fonctionner: xxx

mais je pense que vous pouvez trouver une meilleure solution avec ou où . Pour le début et l'idée que c'est assez.

bonne chance!


1 commentaires

Si vous devez récupérer des données présentant une valeur valide ou une valeur nulle, je suppose que c'est la bonne façon de commencer. Parce que toute autre solution utilisant Orwherenull et des trucs sont difficiles et des pièges.