新聞中心
mysql 分組后隨機(jī)取3條,不夠的全部取出來(lái),應(yīng)該怎么寫?
我這里給你一個(gè) 類似的例子, 表結(jié)構(gòu)也就是簡(jiǎn)單的 分類, 明細(xì).
10年積累的網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先建設(shè)網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有二七免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
要查詢每個(gè)分類下面, 隨機(jī)明細(xì) 幾條的情況.
你可以參考參考.
測(cè)試表與測(cè)試數(shù)據(jù)。CREATE TABLE test_order_by_rand (group_code varchar(10), name varchar(10));INSERT INTO test_order_by_rand VALUES('水果', '蘋果');INSERT INTO test_order_by_rand VALUES('水果', '梨子');INSERT INTO test_order_by_rand VALUES('水果', '香蕉');INSERT INTO test_order_by_rand VALUES('水果', '桃子');INSERT INTO test_order_by_rand VALUES('水果', '菠蘿');INSERT INTO test_order_by_rand VALUES('蔬菜', '蘿卜');INSERT INTO test_order_by_rand VALUES('蔬菜', '白菜');INSERT INTO test_order_by_rand VALUES('蔬菜', '蘑菇');INSERT INTO test_order_by_rand VALUES('蔬菜', '毛豆');INSERT INTO test_order_by_rand VALUES('蔬菜', '青椒');INSERT INTO test_order_by_rand VALUES('堅(jiān)果', '核桃');INSERT INTO test_order_by_rand VALUES('堅(jiān)果', '榛子');INSERT INTO test_order_by_rand VALUES('堅(jiān)果', '杏仁');INSERT INTO test_order_by_rand VALUES('堅(jiān)果', '花生');INSERT INTO test_order_by_rand VALUES('堅(jiān)果', '開心果');預(yù)期目標(biāo), 按照 group_code 進(jìn)行分組, 每個(gè)分組內(nèi), 進(jìn)行隨機(jī)獲取數(shù)據(jù).
SELECT group_code, nameFROM(SELECT CASE WHEN @cn != group_code THEN @rownum:= 1 ELSE @rownum:= @rownum + 1 END AS No, group_code, @cn := group_code AS group_code, nameFROM (SELECT @rownum:=0) r, (SELECT @cn:= '') p, (SELECT * FROM test_order_by_rand order by group_code, rand()) tmp) subQueryWHERE No = 3ORDER BY group_code; 這里套了2層子查詢, 其中的(SELECT * FROM test_order_by_rand order by group_code, rand()) tmp 用于實(shí)現(xiàn), 針對(duì)每一個(gè) group_code 進(jìn)行分組, 下屬的 name 的數(shù)據(jù), 進(jìn)行隨機(jī)排序其中的(......) subQuery用于實(shí)現(xiàn), 針對(duì) 前面的 按 group_code 分組, name 隨機(jī)排序后的數(shù)據(jù)。模擬一個(gè) row_number() over(partition by group_code) 的處理最后的 No = 3 用于限制, 每一個(gè) group_code 下面, 顯示多少行.執(zhí)行結(jié)果:+------------+--------+| group_code | name |+------------+--------+| 水果 | 蘋果 || 水果 | 香蕉 || 水果 | 梨子 || 蔬菜 | 青椒 || 蔬菜 | 白菜 || 蔬菜 | 蘑菇 || 堅(jiān)果 | 核桃 || 堅(jiān)果 | 花生 || 堅(jiān)果 | 開心果 |+------------+--------+9 rows in set (0.00 sec)
SELECT
group_code,
`name`
FROM
(
SELECT
CASE
WHEN @cn != group_code THEN @rownum:= 1
ELSE @rownum:= @rownum + 1
END AS No,
group_code,
@cn := group_code AS group_code1,
name
FROM
(SELECT @rownum:=0) r,
(SELECT @cn:= '') p,
請(qǐng)問(wèn)JSP查詢mysql的時(shí)候,按某一個(gè)下拉列表的值來(lái)排序怎么寫?
先把分類全取出來(lái),并隨機(jī)排序,取排在第一個(gè)分類。
例如:西裝
然后查詢的時(shí)候 order by (category='西裝') desc,category 即可實(shí)現(xiàn)要求。
MySQL是一種開放源代碼的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS),MySQL數(shù)據(jù)庫(kù)系統(tǒng)使用最常用的數(shù)據(jù)庫(kù)管理語(yǔ)言--結(jié)構(gòu)化查詢語(yǔ)言(SQL)進(jìn)行數(shù)據(jù)庫(kù)管理。
數(shù)據(jù)庫(kù)查詢排序使用隨機(jī)排序結(jié)果示例(Oracle/MySQL/MS SQL Server)
Oracle查詢結(jié)果集,隨機(jī)排序
復(fù)制代碼
代碼如下:
select
*
from
table1
order
by
dbms_random.value();
MySQL隨機(jī)查詢出一條記錄:
復(fù)制代碼
代碼如下:
--
下面的查詢語(yǔ)句效率高,不要使用
SELECT
*
FROM
table1
ORDER
BY
rand()
LIMIT
1
來(lái)查詢
SELECT
*
FROM
table1
WHERE
id=(SELECT
id
FROM
table1
ORDER
BY
rand()
LIMIT
1)
查詢結(jié)果集,隨機(jī)排序
復(fù)制代碼
代碼如下:
SELECT
*
FROM
table1
ORDER
BY
rand()
MS
SQL
Server
復(fù)制代碼
代碼如下:
SELECT
*
FROM
Northwind
Orders
ORDER
BY
NEWID()
SELECT
TOP
10
*
FROM
Northwind
Orders
ORDER
BY
NEWID()
mysql語(yǔ)句既要從大到小排列,又要隨機(jī)獲取怎么做的??有誰(shuí)遇到過(guò)嗎?
sql語(yǔ)句:select * from table_name where id=round(rand()*10) order by id desc limit 0,6
注:可以根據(jù)你id值的范圍調(diào)節(jié)where條件中隨機(jī)數(shù)值的范圍。
這是最簡(jiǎn)單的方式,不過(guò)這個(gè)方法可能存在一個(gè)問(wèn)題,就是產(chǎn)生的隨機(jī)數(shù)可能重復(fù),比如隨機(jī)數(shù)出現(xiàn)2次或多次數(shù)字3,這樣結(jié)果中就會(huì)有重復(fù)的記錄。通過(guò)sql語(yǔ)句本身如何解決這個(gè)問(wèn)題暫時(shí)沒(méi)想到,這樣就只能用另一種方法:先在程序中生成6個(gè)不重復(fù)的隨機(jī)數(shù)(具體操作比如每個(gè)隨機(jī)數(shù)生成出來(lái)保存之前先跟之前的所有數(shù)比較一下,不重復(fù)才保存,重復(fù)就重新生成一個(gè)),然后再生成sql語(yǔ)句:select * from table_name where id in (1,2,3,4,5,6) order by id desc ;
網(wǎng)頁(yè)題目:mysql怎么隨機(jī)排序 mysql 自定義排序
當(dāng)前地址:http://www.ef60e0e.cn/article/hpheeo.html