Page 1 sur 1

Limitation requetes where... in() et in_array() ?

Posté : 15 févr. 2010, 15:32
par visualight
Bonjour,

Après quelques recherches sur le web, je m'aperçois que si on utilise un IN() dans la condition WHERE d'une requête est limitée à 1000 !

Ma première question est donc de savoir si vous pouvez me confirmer que c'est bel et bien correct car j'ai vu cela sur un site qui n'est pas officiel.
Ensuite, je me posais la question de savoir si une telle limitation est d'actualité concernant la fonction PHP : IN_ARRAY();

Pouvez vous donc me confirmer ou m'infirmer ma question concernant le IN() et me dire si une telle limitation existe pour la fonction IN_ARRAY(); ?

Merci pour vos renseignements,
raph

Re: Limitation requetes where... in() et in_array() ?

Posté : 15 févr. 2010, 15:37
par stealth35
pour in_array non y'a pas de limite, la seul limite pour la taille d'un(e) array etant la mémoire max alloué a PHP,
pour SQL a voir... je vais me renseigner

Re: Limitation requetes where... in() et in_array() ?

Posté : 15 févr. 2010, 17:21
par visualight
Merci pour ta réponse aussi rapide !
j'ai augmenté la mémoire php pour le futur concernant la fonction in_array .

Si toutefois quelqu'un pourrait me renseigner sur le IN() d'un requête (sa limitation) j'en serais fort gré ;)

Merci pour tout !

Re: Limitation requetes where... in() et in_array() ?

Posté : 15 févr. 2010, 17:28
par stealth35
j'ai pas vu grand chose, a part que pour des grandes valeurs c'est mieux d'utiliser la requête direct dans IN ex :
SELECT id FROM table WHERE champ IN (SELECT id FORM table2 WHERE blabla NOT NULL)

Re: Limitation requetes where... in() et in_array() ?

Posté : 15 févr. 2010, 17:56
par visualight
salut,

J'ai fais des recherches sur ce forum et j'ai vu un article de Ryle disant que c'est bel et bien limité à 1000 valeurs pour un IN().
Maintenant est-ce correct ou pas, je n'en sais rien mais je fais confiance à Ryle tout de même.

php-debutant/requete-mysql-trop-lourde-t251702.html

Merci pour vos réponses,
raph

Re: Limitation requetes where... in() et in_array() ?

Posté : 15 févr. 2010, 17:59
par stealth35
je vais testé je te redis, mais si ta moyen utilise la sous-requete.

Re: Limitation requetes where... in() et in_array() ?

Posté : 15 févr. 2010, 18:27
par stealth35
je viens de testé, pas de problème de mon coté (php 5.3.1 et mysql 5.1.43),
j'ai fais avec 1000 ca passe, j'ai testé 5000 après 15000 (j'avais que 11 000 enregistrements sur la base, ca serai intéressant de tester avec plus).
par contre ca devient de plus en plus long (normal :wink: ) faut que je regarde de quelle coté ca bouffe le plus (php ou mysql) , mais c'est possible que l'un ou l'autre dépasse la memoire

Re: Limitation requetes where... in() et in_array() ?

Posté : 15 févr. 2010, 18:53
par AB
@visualight Tu n'aurais pas plutôt un pb de méthode pour arriver à ton résultat ?

Re: Limitation requetes where... in() et in_array() ?

Posté : 16 févr. 2010, 12:02
par visualight
@visualight Tu n'aurais pas plutôt un pb de méthode pour arriver à ton résultat ?
C'est tout à fait possible, j'ai certainement un problème de methode mais je n'ai pas trouvé autre chose que de stocker des ID dans un champ séparés par des virgules pour arriver à faire en sorte que mon projet fonctionne ...

Comme mon projet est très long, je ne saurais malheureusement tout expliquer ... mais quand j'aurais le temps, je reviendrai vers vous avec toutes les explications nécessaires pour que vous puissiez analyser en détail mes tables et parties de code incriminées pour m'expliquer LA bonne méthode à adopter.

Merci pour tout,
raph