国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

mysql - 有張訂單表,假設有個2個手機號,每個手機號都有5個訂單,如何用一個sql實現(xiàn)每個手機號隨機取3個訂單?

瀏覽:137日期:2022-06-22 08:31:46

問題描述

CREATE TABLE `order` ( `order_id` int(11) NOT NULL AUTO_INCREMENT, `phone` bigint(20) NOT NULL DEFAULT ’0’ COMMENT ’手機號’, PRIMARY KEY (`order_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;

有什么可以不用union all的方法嗎,因為這個是我簡化的模型,實際業(yè)務中,這個phone的數(shù)量可能很多。

SELECT phone, GROUP_CONCAT(order_id ORDER BY rand())FROM `order`WHERE phone IN (11, 22)GROUP BY phone

上面這個方法還是取出了所有數(shù)據(jù),GROUP_CONCAT函數(shù)不支持limit關(guān)鍵字。

問題解答

回答1:

(SELECT `order_id` FROM `order` WHERE `phone`=’$phone1’ LIMIT 3 ORDER BY rand())UNION ALL(SELECT `order_id` FROM `order` WHERE `phone`=’$phone2’ LIMIT 3 ORDER BY rand())

只用SQL完成的話,這樣最簡單,但是 ORDER BY rand() 性能很差。最好就是拿出一定數(shù)量的記錄,然后在程序中隨機再選擇三條。

主站蜘蛛池模板: 钦州市| 凤台县| 梁平县| 威宁| 荔波县| 井研县| 阿鲁科尔沁旗| 沙湾县| 修武县| 迭部县| 加查县| 区。| 榆树市| 峨边| 陕西省| 临海市| 五台县| 白银市| 阿尔山市| 鸡泽县| 桦川县| 上栗县| 蒙山县| 凭祥市| 大港区| 嘉黎县| 信阳市| 基隆市| 临武县| 泌阳县| 马鞍山市| 昌都县| 昌乐县| 石渠县| 房山区| 静宁县| 富蕴县| 梓潼县| 纳雍县| 镇雄县| 错那县|