Voici ma requête d'origine ... La limite code> code> est pour la pagination. P> Maintenant, je dois tout faire comme avant, mais j'ai besoin d'obtenir seulement un tiers des rangées où une condition est présente. p> Je suis venu avec cela, je viens de lancer limite 30 code> avant que je puisse comprendre comment DO (Total des lignes correspondues / 3) * 2. P> SELECT `id`
FROM `properties`
WHERE `id` NOT IN (SELECT `id`
FROM `properties`
WHERE `vendor` = "abc"
ORDER BY RAND()
LIMIT 30)
LIMIT 10, 20
3 Réponses :
mySQL prend la limite de support dans une sous-requête ... mais MySQL ne prend pas en charge en utilisant / non dans une sous-requête. P>
Pour être honnête, je ne sais vraiment pas ce que vous essayez d'accomplir. P>
Juste une demande étrange par un client - "Je veux montrer toutes les propriétés, mais seulement une 1/3 aléatoire par un fournisseur spécifique".
Si votre version de MySQL ne prend pas en charge cela, vous avez 2 options: p>
Sur un hôte partagé, alors ne pouvez pas mettre à niveau. Cependant, je l'ai fait dans PHP. :) Merci pour votre réponse.
Désolé je suis en retard, cela a fonctionné pour moi:
Merci omg poneys, l'a déjà fait dans PHP mais j'apprendrai quelque chose de cela. +1
Une chose évidente qui ressort à l'esprit est que résultats aléatoires i> et pagination i> ne vont pas vraiment ensemble ...
@Deceze ouais, je pensais que lorsque vous le faites dans PHP. Donc, je viens de prendre le premier 1/3.