好了,即時通訊工作了針對MySQL的搜索功能,但所遇到的東西,我似乎無法工作了。我正在嘗試製作一個腳本來搜索用戶朋友,並以更高的分數返回朋友。這是我到目前爲止:MySQL的UNION,ORDER BY和報表全部在一個查詢
SELECT id, first_name, last_name, image_id FROM users
WHERE id IN (
SELECT receiver AS friend FROM friends WHERE initiator = :me AND status = :status
UNION
SELECT initiator AS friend FROM friends WHERE receiver = :me AND status = :status
) ORDER BY score AND concat(first_name, ' ', last_name) LIKE '%test query%';
現在一切正常,直到我嘗試按Score排序的朋友。任何人都可以鍛鍊如何通過分數來訂購朋友嗎?如果你需要我澄清任何問題。
我有以下兩個表。
用戶表:
朋友表:
如這裏請求是一些示例數據:
作爲一個例子,我有三個用戶:
ID: 1, first_name: Michael, last_name: Sample
ID: 2, first_name: John, last_name: Citizen
ID: 3, first_name: Caitlin, last_name: Wired
的第一個條目下面將邁克爾和凱特琳通過表明邁克爾發起好友請求和凱特琳(接收器)接受了它成爲朋友。 (因此1的狀態),他們的基本分數爲10,第二個條目顯示,約翰也是朋友凱特琳(由凱特琳啓動),但有一個更好的成績。
ID: 10000, initiator: 1, receiver: 3, status: 1, score: 10
ID: 10001, initiator: 3, receiver: 2, status: 1, score: 20
所以在這個樣本數據的情況下。如果Caitlin是尋找她的朋友的用戶,那麼它應該顯示John而不是Michael。
你可以添加樣本數據與預期的結果嗎? –
適當[示例代碼](http://sscce.org/)(這裏,SQL語句)比任何ad hoc模式或屏幕截圖更有用。請爲[samples]使用CREATE TABLE和INSERT ... VALUES(http://weblogs.sqlteam.com/jeffs/archive/2008/05/13/question-needed-not-answer.aspx)。所需的結果不需要作爲示例代碼呈現,因爲結果是代碼的輸出,而不是代碼本身。 – outis
當你說「一切正常」時,它意味着它不能按照你想要或預期的方式工作。你究竟得到了什麼,這與你的期望有什麼不同? – outis