我有一個數據庫可以跟蹤書籍。這些書表看起來像這樣:從數據庫中隨機選擇
-----------------------------------------------
BookID | UserID | SecID
-----------------------------------------------
66 | 1 | 3
-----------------------------------------------
67 | 1 | 2
-----------------------------------------------
68 | 1 | 5
-----------------------------------------------
69 | 2 | 2
-----------------------------------------------
我想選擇由特定用戶從可能的部分
例如 陣列擁有的隨機書,如果$userID = 1
和$arrayA = array(1,2,3);
輸出應該是本書66
或67
我可以只使用array_rand($arrayA, 1);
然後注入任何隨機數的函數返回與此SQL語句來拉書
SELECT * FROM `books` WHERE userID = '1' AND typeID = '$randomSection' LIMIT 1
但是,如果array_rand
函數返回1,則sql語句不返回任何內容。如何編寫一個更好的sql語句來保證結果,只要用戶至少有一本書在給定章節中列出了一本書?
確實,這是肯定的正確答案。你碰巧知道一個更便宜的方法來實現相同的目標。理論上? – 2012-02-16 07:01:57
這可能取決於您的特定數據集。請搜索這個網站,你會發現很多答案。 – deceze 2012-02-16 07:18:08