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

時間 2021-10-14 22:23:54

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不支援臨時表怎麼辦,如何修改mysql臨時表記憶體表的大小限制

內部臨時表有兩種型別 一種是heap臨時表,這種臨時表的所有資料都會存在記憶體中,對於這種表的操作不需要io操作。另一種是ondisk臨時表,顧名思義,這種臨時表會將資料儲存在磁碟上。ondisk臨時表用來處理中間結果比較大的操作。如果heap臨時表儲存的資料大於max heap table siz...

mysql資料庫怎樣建立表,MYsql資料庫怎樣建立表?

歐覓潘安然 比如要建立學生表表名為student,學生表有欄位學號 no 年齡 age create table student no int primary key 主鍵 age int 執行下就建立好了 隨便舉的例子,明白吧?謝謝採納! create database cookbook 建立一個...

Mysql5 1中,datetime型別的欄位為什麼插入不了NULL值

datetime是struct,值型別,值型別是不能為null的.只有datetime的泛型表達datetime?型別可以賦值為null,但這只是一種簡寫,datetime?的實際型別為nullable.所有值型別都可以轉換為這種形式來賦值為null.mysql5.1中,datetime型別的欄位為...