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

時間 2021-10-14 22:24:01

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效能」

小牛騎馬追火箭 優化 mysql資料庫 來提高 mysql效能 的方法有 1 選取最適用的字段屬性。mysql可以很好的支援大資料量的訪問,但是一般說來,資料庫中的表越小,在它上面執行的查詢也就會越快。因此,在建立表的時候,為了獲得更好的效能,我們可以將表中字段的寬度設得盡可能小。2 使用連線 jo...

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

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

MyBatis怎樣實現MySQL動態分頁

聖鸞 第一種 select from user limit 1 用這種方式是不行的,因為在mysql中limit後面是不允許接表示式的 在網上查了下mysql還有一種動態分頁,用mybatis試了下報語法錯誤,直接在mysql中執行是可以的,如下 prepare page from select f...