我有一个数据库可以跟踪书籍。这些书表看起来像这样:从数据库中随机选择
-----------------------------------------------
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