Dans mon application Laravel, j'utilise une table dans laquelle il y a une colonne de chaîne pour stocker des nombres longs. Comment puis-je exécuter un whereBetwean sur le modèle concerné?
J'essaie ceci et cela ne fonctionne pas, le résultat n'est pas ce qu'il est censé être;
Model:whereBetween('number', [$startNumber, $endNumber])->get();
3 Réponses :
whereBetween () ne fonctionne pas, car vous compareriez des chaînes, pas des nombres. Pour comparer des chaînes telles que des nombres, vous devez d'abord les convertir.
Model::query()
->whereRaw('CONVERT(`number`, BIGINT) BETWEEN ? AND ?', [$startNumber, $endNumber])
->get();
J'espère que cela aide
Model::whereRaw('CAST(`number` AS SIGNED) BETWEEN ? AND ?', [(int)$startNumber, (int)$endNumber])
->get();
J'ai essayé quelque chose de similaire de mon côté et cela a fonctionné.
essayez ceci
Model:whereBetween('number', [int($startNumber), int($endNumber)])->get();
veuillez spécifier les valeurs $ startnumber et $ endnumber.