Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > mysql order by ตัวเลข ไม่เรียงอย่างถูกต้อง!? ผมมี field ชื่อ product_name ผมต้องการเรียงโดยฟิลด์นี้ ascending



 

mysql order by ตัวเลข ไม่เรียงอย่างถูกต้อง!? ผมมี field ชื่อ product_name ผมต้องการเรียงโดยฟิลด์นี้ ascending

 



Topic : 038141



โพสกระทู้ ( 4,719 )
บทความ ( 8 )



สถานะออฟไลน์




ผมมี field ชื่อ product_name ผมต้องการเรียงโดยฟิลด์นี้ ascending
$sql = "select * from product order by product_name asc";
พอสั่ง sql ปุ๊บ แทนที่จะได้
เล่ม 1
เล่ม 2
เล่ม 3 ไปเรื่อยๆ

กลับได้
เล่ม 1 ... เล่ม 19
เล่ม 2 ... เล่ม 29
มันเป็นแบบนี้ซะได้ แล้วพอหาดูมันก็เจอวิธีแก้ด้วย abs() แต่ abs มันใช้ได้แค่กรณีฟิลด์เป็น int แต่นี่มันเป็น text
และข้อมูลมีจำนวนมหาศาลจนเกินจะแก้เป็น int ได้...

พอจะมีวิธีไหนบ้างมั้ยครับ ให้ mysql มันนับเลขอย่างที่มนุษยชาติเค้านับกัน

ปล. ผมใช้ php adodb class ช่วย มันจะมีเทคนิคพิเศษช่วยมั้ยครับ?
ตอนนี้อะไรก็ได้ ขอให้นับเลขได้เหมือน"คนนับ" ก็นับว่าดีมากแล้ว



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-02-02 04:08:23 By : mr.v View : 7895 Reply : 7
 

 

No. 1



โพสกระทู้ ( 538 )
บทความ ( 3 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


เติมเลขหลักเดียวให้เป็น 2 หลักดูครับ น่าจะช่วยได้

เล่ม 1 ... เล่ม 19 -> เล่ม 01 ... เล่ม 19






Date : 2010-02-02 07:22:56 By : salapao_codeman
 


 

No. 2



โพสกระทู้ ( 604 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


เหอๆ มันเป็นหลักการเรียงลำดับของ sql อยู่แล้วอะเน๊าะ

เพิ่งรู้ว่าใช้ abs() ได้ - -"
Date : 2010-02-02 08:46:48 By : yomaster
 

 

No. 3



โพสกระทู้ ( 4,719 )
บทความ ( 8 )



สถานะออฟไลน์


เฮ้อ.. ไม่มีใครรู้เลยเหรอเนี่ย ไหนๆไปคุ้ยเจอแล้ว เอามาตอบให้เผื่อคนอื่นจะเจอปัญหาเดียวกัน

การเรียงลำดับตัวอักษรและตัวเลข
http://dev.mysql.com/doc/refman/5.0/en/sorting-rows.html
Roberto Eduardo Decurnex Gorosito on June 19 2007 6:41am

จาก
order by pl.product_name asc
เป็น
order by length(pl.product_name), pl.product_name asc

ไม่เข้าใจเหมือนกันว่า length มันคืออะไร แล้วมีประโยชน์ยังไง ใครอธิบายได้จะขอบคุณ
Date : 2010-02-04 22:31:11 By : mr.v
 


 

No. 4



โพสกระทู้ ( 1,439 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

order by length(pl.product_name), pl.product_name asc

length(pl.product_name) น่าจะเป็นจำนวนตัวอักษรครับ

วิธีการเขียนแบบนี้หมายถึง

ให้เรียงลำดับจำนวนตัวอักษรพร้อมกับเรียงลำดับตัวอักษรไปด้วย
Date : 2010-02-04 23:41:24 By : xbeginner01
 


 

No. 5



โพสกระทู้ ( 4,719 )
บทความ ( 8 )



สถานะออฟไลน์


แล้ววิธีนี้จะแน่นอนมั้ยครับ จะมีผลเสียหรือพลาดในภายหลังมั้ยครับ อย่างเช่น
เล่ม 1 ...ไปถึง เล่ม 25
เล่มพิเศษ 1

หรือมีการกรอกแบบแปลกๆอื่นๆ มันจะยังคงเรียงจาก ก-ฮ ก่อนแล้วตามด้วยตัวเลขรึเปล่าครับ
Date : 2010-02-05 00:38:33 By : mr.v
 


 

No. 6



โพสกระทู้ ( 1,439 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

จะว่าผิดพลาดก็ผิดได้น่ะครับสมมติน่ะ
ถ้ามึถึง เล่ม 1234567 (มีอยู่ล้านกว่าเล่ม)
กับ เล่มพิเศษ 1
ผลออกมา
เล่มพิเศษ 1
เล่ม 1234567

เพราะว่าจำนวนตัวอักษร เล่มพิเศษ 1 น้อยกว่า เล่มพิเศษ 1234567 ครับ แต่ถ้าคิดว่าไม่ถึงล้านเล่มก็น่าจะใช้ได้ครับ
ทั้งนี้ทั้งนั้นก็ขึ้นอยู่กลับจำนวนตัวอักษรของ เล่มxxx 1 ด้วยน่ะครับ
เช่น เล่มสี 1 แปลว่าสร้าง เล่ม x ได้ไม่เกิน 1000 เล่ม
เล่ม 999
เล่มสี 1
เล่ม 1000


ถ้าไม่งั้นคุณ vee ใช้วิธีเรียงแต่ละ เล่มไปเลยก็ได้ครับเช่น

mysql_query("select * from tbl where roduct_name like "%เล่ม %" order by length(product_name), product_name asc")

หลังจากแสดง เล่มแปลก ๆ
mysql_query("select * from tbl where roduct_name like "%เล่มพิเศา%" order by length(product_name), product_name asc")


อีกวิธีคือคุณ vee ต้องแยกฟิลด์ออกจากกันครับ ฟิลด์ระหว่างคำนำหน้า กับ จำนวน เพราะจะได้เรียงลำดับกันง่าย
Date : 2010-02-05 10:45:40 By : xbeginner01
 


 

No. 7



โพสกระทู้ ( 4,719 )
บทความ ( 8 )



สถานะออฟไลน์


ไอเดียดีเลย ขอบคุณครับ
Date : 2010-02-05 14:23:04 By : mr.v
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : mysql order by ตัวเลข ไม่เรียงอย่างถูกต้อง!? ผมมี field ชื่อ product_name ผมต้องการเรียงโดยฟิลด์นี้ ascending
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 00
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่