mysql怎樣對臨時欄位高效排序(30萬條資料)

2021-10-05 03:07:34 字數 4206 閱讀 5422

1樓:匿名使用者

$sql = "select t.*, f.name from threads t, forums f where f.

fid=t.fid order by id=10000 desc , t.dateline desc limit 0, 10";

但效率比較差。

下面這個效率上會好一些

sql code?

select * from (

(select t.*, f.name from threads t, forums f where f.fid=t.fid id=10000)

union all

(select t.*, f.name from threads t, forums f order by t.dateline desc limit 0, 10)

) torder by id=10000 desc,datelinedesc limit 0, 10

2樓:魔獸

這個我也不知道,先mark下,等有人回答我也看看答案

如何對mysql資料庫中某些特定欄位進行排序?

3樓:匿名使用者

select * from 表名 order by 日期 desc; 按照日期降序排列。

如何根據mysql資料庫中的某一個欄位進行排序呢??

4樓:汪雄輝拉

例如你表名 為test,sql 如下:

select * from test order by `order` desc-----------------根據order降序排列,去掉末尾的desc就是升

序注:order為關鍵字,所以欄位order需要用反引號括起來,不然報錯

5樓:time嵐憶

先把分類全取出來,並隨機排序,取排在第一個分類。

例如:西裝

然後查詢的時候 order by (category='西裝') desc,category 即可實現要求。

mysql是一種開放源**的關係型資料庫管理系統(rdbms),mysql資料庫系統使用最常用的資料庫管理語言--結構化查詢語言(sql)進行資料庫管理。

mysql這個名字,起源不是很明確。一個比較有影響的說法是,基本指南和大量的庫和工具帶有字首“my”已經有10年以上,而且不管怎樣,mysql ab創始人之一的monty widenius的女兒也叫my。這兩個到底是哪一個給出了mysql這個名字至今依然是個迷,包括開發者在內也不知道。

mysql的海豚標誌的名字叫“sakila”,它是由mysql ab的創始人從使用者在“海豚命名”的競賽中建議的大量的名字表中選出的。獲勝的名字是由來自非洲史瓦濟蘭的開源軟體開發者ambrose twebaze提供。根據ambrose所說,sakila來自一種叫siswati的史瓦濟蘭方言,也是在ambrose的家鄉烏干達附近的坦尚尼亞的arusha的一個小鎮的名字。

mysql,雖然功能未必很強大,但因為它的開源、廣泛傳播,導致很多人都瞭解到這個資料庫。它的歷史也富有傳奇性。

6樓:追尋著

select * from test order by `order` desc

mysql資料庫怎麼可以兩個條件排序?

7樓:匿名使用者

可以的,order by多個欄位規則是這樣的,用逗號分隔每一個欄位,如果欄位不指明排序方式,預設是增序。排序的方法是先按第一個欄位排序,如果有相同的再按後續的欄位依次排序。

舉個例子

按照c1排序的結果如上圖,然後我們按照c1增序,c2降序排列,結果如下:

8樓:du瓶邪

在資料庫查詢時,常常需要排序,而有時排序條件可能有多個。

如資料庫:

a b

1 103

1 101

2 201

2 203

1 102

2 202

排序後: a b

1 103

1 102

1 101

2 203

2 202

2 201

語句:select a.a , a.b from table a order by a.a asc , a.b desc

其中asc連線多條排序,且與後一條查詢之間有逗號隔開!

9樓:匿名使用者

今天又測試了一下,使用utf8字符集建立的表或者欄位使用的是utf8字符集,中文的排序是不正確的,如果表和欄位是gbk字符集,則可以正確的排序。

mysql> create table tt_character (name varchar(20)) default charset gbk;

query ok, 0 rows affected (0.03 sec)

mysql> create table tt_character1 (name varchar(20)) default charset utf8;

query ok, 0 rows affected (0.04 sec)

mysql> insert into tt_character values('蘭州'),('安徽'),('江西');

query ok, 3 rows affected (0.00 sec)

records: 3 duplicates: 0 warnings: 0

mysql> insert into tt_character1 values('蘭州'),('安徽'),('江西');

query ok, 3 rows affected (0.00 sec)

records: 3 duplicates: 0 warnings: 0

mysql> select * from tt_character1 order by name;

+------+

| name |

+------+

| 蘭州 |

| 安徽 |

| 江西 |

+------+

3 rows in set (0.00 sec)

mysql> select * from tt_character order by name;

+------+

| name |

+------+

| 安徽 |

| 江西 |

| 蘭州 |

+------+

3 rows in set (0.00 sec)

10樓:j**aman歪歪

沒問題啊

這個都寫出來直接執行下就可以了啊

11樓:匿名使用者

select * from mysql order by time desc,id desc

12樓:【血衣亭

select * from mysql order by 欄位一 asc ,欄位二 asc,欄位三 desc;

mysql根據某個欄位內容排序

13樓:匿名使用者

select * from (select * from tablename where a='01' order by b asc) a

union all

select * from (select * from tablename where a='02' order by b desc) a

14樓:匿名使用者

select * from yourtable order by  a asc ,  b desc

這個就是你想要的

yourtable你的表名

a,b為你的欄位名

15樓:匿名使用者

使用兩個排序就行了

select * from tablename order by a asc,b desc

16樓:匿名使用者

直接使用sql語句是很難的了,需要通過php來,先把a列分組出來,然後,可以根據迴圈來逐一查詢出來a組裡面的每個組的資料,然後去查該表,按照b的升或者降序排列即可達到要求。

如何在mysql中對text欄位加索引

mysql中給text欄位建立索引有以下兩種方法 前提是表引擎應該是myisam的 1 建表時建立,語法為 2 通過alter修改表結構,語法為 使用方法 select note text from tablenamewhere match note text against rabbit 檢索no...

A伺服器怎樣使用B伺服器上的MySQL高分,急

一看就知道你是個菜鳥,跟你說說傻瓜式操作或許你才懂 首先,登入你vps的phpmyadmin,點選許可權。點選修改root的許可權,在 登入資訊 選項中都選擇 使用文字域 主機引數填寫西部數碼的虛擬主機ip地址,這樣你就新增了一個允許遠端訪問mysql的使用者root。最後把 配置檔案改成 db h...

懷孕血糖高對胎兒有什么影響,孕婦血糖高怎樣控制

定期檢查 過高該吃藥就得吃 孕期血糖高對胎兒有什麼影響?孕婦血糖高怎麼控制 孕婦血糖高對胎兒有什麼影響,孕婦血糖高一日三餐表如何搭配?孕婦血糖高對胎兒有什麼影響 病情分析 孕婦血糖高對胎兒有影響 意見建議 孕婦血糖高對胎兒有影響的,妊娠合併糖尿病屬於高危妊娠,對母兒均有較大危害,對母親 容易併發妊高...