mysql問題選出兩個不同的條件進行合併並且條件和

2021-03-19 18:22:14 字數 3339 閱讀 8714

1樓:匿名使用者

select goods_id,goods_name,-1*shop_price as shop_price from (

select goods_id,goods_name,case when shop_price>4000 then shop_price else -1*shop_price end as shop_price

from goods

where shop_price>4000 or shop_price<1000

) torder by shop_price desc

我在mysql資料庫裡面查詢出來的資料想要通過2個條件來進行排序,首先通過第一個條件排序,然後再是第二個

2樓:陽光上的橋

當order by後面有多個排序欄位的時候,第一個欄位是主關鍵字,先按第一個欄位排序,只有第一個欄位值相同的,才按第二個欄位進行排序,如果有第三個欄位、而且第二個欄位相同,才考慮按第三個欄位排序,更多欄位道理相同。

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

3樓:匿名使用者

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

舉個例子

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

4樓: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連線多條排序,且與後一條查詢之間有逗號隔開!

5樓:匿名使用者

今天又測試了一下,使用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)

6樓:javaman歪歪

沒問題啊

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

7樓:匿名使用者

select * from mysql order by time desc,id desc

8樓:【血衣亭

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

在mysql中,兩個結構不完全相同的表,能使用相同的一個欄位作為條件合併查詢到一個結果集中嗎?

9樓:匿名使用者

先弄清概念,union 是合併記錄集,不管你從**查出來,要能 union 的話,欄位數量和結構必須相同;你說的 a、b表都有 title ,那麼你很有可能是想關聯查詢,關聯查詢是合併不同表中的欄位到一起, union是合併不同表中的記錄集到一起。

關聯查詢條件中類似這樣寫:

where a.title=b.title and a.title like '%abc%'

這樣,就把 a,b表中具有相同 title 值的記錄欄位抽取出來組合在一起呈現,並且按你給定的關鍵字 '%abc%'抽取。

10樓:匿名使用者

可以用select 「空值」或「常量」辦法來虛擬補齊兩表互相沒有的欄位,進而實現兩個不同結構資料表查詢結果集的合併。

下面舉例做示範演示:

a(a,b,c,d)

b(d,e,f,g)

a、b兩表只存在一個共有欄位d

select a,b,c,d,null as e,null as f,null as g

from a where d like '%abc%'

union all

select null,null,null,d,e,f,gfrom b where d like '%abc%';

11樓:鋼槍_不倒

表的資料量大的話'儘量查出結果'程式裡面拼接'效率更高

12樓:匿名使用者

貌似欄位數量一樣就可以

Mysql語句,如何按兩個不同條件查詢資料

你的關聯條件是 a.欄位名a b.欄位名a 如果是的話完全可以一條語句 貌似不可以吧,兩條無關語句糅合在一起 假設有一個id欄位 select count 欄位回名答a as a,欄位名a from table as aa left join select count 欄位名a as b,欄位名a ...

一十三粒麻將翻開六張兩個三條兩個六條兩個九條的成語

三六九等 希望幫到你 滿意的話還請採納哦 三六九等,一副麻將三條六條九條打一成語 答案是 三六九等 三六九等 s n li ji d ng 解釋 指等級和類別多,有種種差別。出處 清 曹雪芹 紅樓夢 第75回 只不過我這一會子輸了幾兩銀子,你們就三六九等了。早有東漢史學家.文學家班固 公元32 92...

兩個故宮不同之處

故宮博物院是在明 清兩代皇宮及其收藏的基礎上建立起來的中國綜合性博物館。故宮博物院在中國一共有兩處,北京故宮博物院和臺北故宮博物院,另外瀋陽故宮博物館也習慣上稱為瀋陽故宮博物院。一般簡稱北京故宮博物院為故宮博物院。我國現在唯一存留的兩座古代建築宮殿,帝王建築群,一個是北京故宮,一個是瀋陽故宮。瀋陽故...