Альтернатива, для которой не требуется 2 выбора и объединения, это ORDER BY FIELD ;
в моем запросе, я использовал поле id
, чтобы заставитьконкретная статья наверх.
08:34:47 (7) > select id, title FROM articles ORDER BY FIELD(id, 181634, id), RAND() LIMIT 6;
+--------+-----------------+
| id | title |
+--------+-----------------+
| 181634 | This is a title |
| 166289 | This is a title |
| 152080 | This is a title |
| 170037 | This is a title |
| 135411 | This is a title |
| 171414 | This is a title |
+--------+-----------------+
6 rows in set (0.06 sec)
08:35:09 (8) > select id, title FROM articles ORDER BY FIELD(id, 181634, id), RAND() LIMIT 6;
+--------+-----------------+
| id | title |
+--------+-----------------+
| 181634 | This is a title |
| 104905 | This is a title |
| 103044 | This is a title |
| 129612 | This is a title |
| 104157 | This is a title |
| 160612 | This is a title |
+--------+-----------------+
6 rows in set (0.06 sec)