2013-02-08 4 views
0

J'ai une chaîne dans mysql que je veux randomiser de sorte que chaque fois que j'exécute la requête, j'obtiens des résultats différents.Randomiser les chaînes dans mysql

La chaîne exemple

$str = '4_127','2_84','2_85';

Alors, je vais passer à la clause ORDER BY pour randomiser résultats.

SELECT `MY_SEARCH_PARAMS` FROM `mytable` WHERE `MY_WHERE_CONDTIONS` ORDER BY 
FIELD(CONCAT(property_id,"_",catalog_id), '4_127','2_84','2_85'), `id` ASC; 

J'ai besoin d'un moyen pour que l'ordre du contenu de la chaîne soit changé à chaque fois.

Merci.

+0

est '$ str = '4_127', '2_84', '2_85',' la chaîne réelle ou si vous avez des chaînes d'arbres qui sont '4_127',' '2_84' et 2_85'? –

+0

C'est la chaîne actuelle. –

+0

avez-vous les valeurs «4_127», «2_84», «2_85» dans votre tableau ??? – jcho360

Répondre

1

Vraiment? C'est un comportement très déroutant. Qu'essayez-vous d'accomplir?

Néanmoins, même si vous utilisez un code comme celui-ci, il est au moins préférable de les randomiser dans le script PHP (je suppose que vous utilisez PHP).

$str_array = array('4_127','2_84','2_85'); 
shuffle($str_array); 
$str = implode(", ",$str_array) 
+0

Confondre c'est, bien sûr. Mais c'est comme ça que les projets changent :) Oui, si rien d'autre, je pourrais le faire en PHP. –

+0

Pourquoi voulez-vous que cela soit géré par MySQL? – Lothar

+0

Il y a quelques autres champs/conditions qui en dépendent. –