Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak wybrać dane z MYSQL z LIMIT zawiera jeden element o wartości np. 1

Używanie UNION ALL a zapytanie podrzędne pomoże uzyskać oczekiwany wynik.

Poniższe zapytanie pomoże w Twoim przypadku:

<>SELECT odpowiedź FROM ( SELECT * FROM ( SELECT odpowiedź, 1 AS ManualOrder FROM Odpowiedzi WHERE Poprawne ='prawda' AND QId =1 UNION ALL SELECT Odpowiedź, RAND() FROM Odpowiedzi WHERE Poprawne !='prawda' AND QId =1 ) AS Q ORDER BY ManualOrder DESC LIMIT 3) W ORDER BY RAND()

Znajdź demo na db<>fiddle

W moim demo Answer 04 jest poprawną odpowiedzią na pytanie o identyfikatorze 1 , w zestawie wyników Answer 04 jest zawsze zwracany wraz z 2 innymi odpowiedziami w losowej kolejności.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL WHERE Data> 15 dni

  2. Dlaczego SQLSTATE[HY000]:Błąd ogólny?

  3. replikacja mysql - od mistrza do niewolnika

  4. Zagnieżdżone MySQL Wybierz

  5. Ponowne ładowanie zmiennych .env bez restartu serwera (Laravel 5, hosting współdzielony)