Order by rand() in yii2

Hallo Jungs, ich bin verwirrt mit einer Sache

Ich schreiben möchte folgende Abfrage in yii2 aber ich bin nicht in der Lage, um die erwartete Ausgabe

SELECT * FROM user where category_id=5 ORDER BY rand() LIMIT 4

Für, dass ich getan habe folgenden

$data= User::find()->where(['category_id'=> 5])->orderBy(['rand()'])->limit(4);

Aber es erzeugt den Befehl wie dem folgenden

SELECT * FROM `user` WHERE `category_id`=5 ORDER BY `0` LIMIT 4

Ist nicht eine gültige mysql-Anweisung,also was sollte ich tun, um die Abfrage richtig?

Mein Ziel ist es, um jede zufällige 4 Datensätze aus user Tabelle.

Es sei denn, Sie kümmern sich nicht um die Leistung, bestellen Sie nie von rand(). Es ist furchtbar ineffizient.
habe es danke. Ich verwendete die Methode, die in der Schlussfolgerung auf, dass Artikel.
Lesen Sie den Artikel. Es gibt verschiedene Lösungen gibt und ein graph, der zeigt, wie Sie führen Sie auf unterschiedlichen Datensätzen. Es ist nicht relevant, wie viele Datensätze Sie brauchen, um zu finden, es ist mehr wichtig, wie viele Einträge Sie in der Tabelle.

InformationsquelleAutor Mike Ross | 2015-11-17

Schreibe einen Kommentar