我正試圖在Sql中執行兩個查詢,但我想在第一個查詢被執行時才運行第二個查詢。
這里有一個例子來幫助理解我想做的事情:
-------------------------------。
| id | name | level | passed |
|--------------------|--------|
| 1 |Jose | A | YES |
|--------------------|--------|
| 2 |Jeehan | B | YES |
|--------------------|--------|
| 3 |Sara |D | NO | D
|--------------------|--------|
| 4 |Sami | B | YES |
|--------------------|--------|
| 5 |Lucy | C | NO |
|--------------------|--------|
| 6 |Maria | A | YES
|--------------------|--------|
現在我想首先選擇有(pass=YES)的用戶。
然后運行第二個查詢來顯示所有其他的用戶。
我不想按YES或NO來排序,因為我不希望他們被排序。我希望第一個查詢能給我隨機的用戶,但所有用戶都有相同的passed列的值。
這里我做了什么,但它不作業。
(SELECT * FROM usersWHERE傳遞='yes' ORDER BY RAND()) UNION UNIONSELECT * FROM users WHERE傳遞='no' ORDER BY RAND())
uj5u.com熱心網友回復:
只要使用一個order by:
SELECT u.*
FROM users u.
ORDER BY u.pass DESC, RAND()。
這假定passed只接受'yes'和'no'的值。 如果它有其他的值,那么先進行過濾:
SELECT u.*
FROM users u.
WHERE u.pass IN ('yes'/span>, 'no')
ORDER BY u.pass DESC, RAND()。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/321938.html
標籤:
