看板 PHP 關於我們 聯絡資訊
想請教各位一個字串操作的問題 我原先對MySQL中的資料給予兩碼數字編號 ex: a 01 ,a 02...... 但是現在發現資料多出99了~~ 所以變成 a 100,a 101 但是如此一來排序就會有問題 變成 a 01 ~ a 10 a 100 我要用php寫一個程式來處理.但不知要用何種方法與函式 另外想請教各位 在EXCEL中的LEFT跟RIGHT字串函式 php中要用何種函式來作 ex: res=LEFT("aaa",2) 結果 res=aa 感謝~~
teds:排序邊看不太懂..natsort 不就好了嗎?? 09/09 12:54
teds:left 和 right 你可以參考 substr 這個函式 09/09 12:57
cleanwind:補充:natsort排序完,鍵和值不會改變。 09/09 12:58
jimshsu:a 01 只是一筆紀錄的欄位值.因為我用SQL提取資料並排序 09/09 17:53
jimshsu:所以資料列變成a 10,a 100,a 101,a102...a109,a 11 09/09 17:55
jimshsu:natsort還需要php額外處理~~所以我才想要直接更改欄位值 09/09 17:57
※ 編輯: jimshsu 來自: 59.115.217.45 (09/09 18:36)
teds:select number from (table) order by (number+0); 09/10 00:07
teds:這樣就可以強制把text 轉換成數字方式來排序 09/10 00:07
teds:不過這也表示你 number 這個欄位的型態是文字型態不是用數字 09/10 00:08
teds:去存的,所以才需要做型態轉換(設計不良!?) 09/10 00:09
teds:附帶一提,因為每次查詢都要做型態轉換,所以會"很慢"喔XDD 09/10 00:10
jimshsu:這個欄位本來就類似書本名稱一般....ex:book 01 09/10 01:12
jimshsu:所以是以varchar形式...所以我才想寫個php process 09/10 01:12
jimshsu:把之前沒預想到的錯誤編目更正為三碼.... 09/10 01:13
jimshsu:原先以為MySQL有提供natural sort.不過上官網看.似乎還沒 09/10 01:15
teds:那就把01 存成 001就好了(前面都補上0)>.<" 09/10 06:42