台灣最大程式設計社群網站
線上人數
1379
 
會員總數:241337
討論主題:186908
歡迎您免費加入會員
討論區列表 >> MySQL >> 優先排列姓名但讓pk值較小的姓名排列在前面
[ 變換順序 ]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
優先排列姓名但讓pk值較小的姓名排列在前面
價值 : 25 QP  點閱數:209 回應數:7

樓主

Sanji
門外漢
0 24
343 62
發送站內信

首先舉個例
假設:
pk 姓名
1 AE
2 張三
3 QE
4 張三
5 AE
6 QE

排列之後
我希望能呈現
pk 姓名
1 AE
5 AE
2 張三
4 張三
3 QE
6 QE
但是如果先照姓名排列再做PK排列這樣根本沒有意義
全部還是會照PK排列
但光照姓名排列卻會產生下列狀況
pk 姓名
1 AE
5 AE
3 QE
6 QE
2 張三
4 張三
我也嘗試過子查詢還是無法
請各位大大教教我




搜尋相關Tags的文章: [ 查詢 mysql ] ,
本篇文章發表於2017-08-12 21:11
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
不錯的參考

小魚
檢舉此回應
如果先照姓名排列再做PK排列這樣根本沒有意義
全部還是會照PK排列

這句話怪怪的,
應該是會變成下面那個情況才對吧,
你的SQL語法願意貼上來看看嗎?

另外,
你希望呈現的東西也怪怪的...
本篇文章回覆於2017-08-12 21:57
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

Sanji
檢舉此回應
小魚大大
關於您說我希望呈現的東西怪怪的
是因為
原本有另外一個單子是照pk順序排的

但這個單子我並不要以pk為第一順序排列
要以姓名
但姓名排列完後
要照pk排列
因為mysql的字串排列好像 英文會在中文前面
所以原本在後面的資料(QE)經過姓名排序後跑到中文姓名(張三)前面
我是這個意思

本篇文章回覆於2017-08-12 22:20
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
最有價值解答

小魚
檢舉此回應
雖然你的問題很怪,
但是靈光一閃忽然想到一種怪怪的解法



其中tablename是表格名稱,
我實際試過是可以的,
試試看吧。
本篇文章回覆於2017-08-12 22:42
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

Sanji
檢舉此回應
給出我目前的sql語法
select a.pk,a.person_name
from ORDERDATA_PRICE a,ORDERDATA b
where a.data_sts='Y'
and a.orderdata_id=b.orderdata_id
and b.data_sts='Y'
and b.tour_id='20170810'
and a.orderdata_id='a2017080100001'
order by a.person_name

小魚大大 我想嘗試你的方法
但是問題是我有跨資料表搜尋
這樣我的c沒辦法指定
有辦法可以跨資料表做指定嗎
本篇文章回覆於2017-08-12 23:10
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

Sanji
檢舉此回應
小魚大大 成功了
感謝大大
本篇文章回覆於2017-08-12 23:30
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

Sanji
檢舉此回應
不過我還是很想知道跨資料表的指定方法XDD
本篇文章回覆於2017-08-12 23:33
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

小魚
檢舉此回應
外面多包一層select試試看
本篇文章回覆於2017-08-13 00:15
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   
1

回覆
如要回應,請先登入.