|
|
|
mysql order by ตัวเลข ไม่เรียงอย่างถูกต้อง!? ผมมี field ชื่อ product_name ผมต้องการเรียงโดยฟิลด์นี้ ascending |
|
|
|
|
|
|
|
เติมเลขหลักเดียวให้เป็น 2 หลักดูครับ น่าจะช่วยได้
เล่ม 1 ... เล่ม 19 -> เล่ม 01 ... เล่ม 19
|
|
|
|
|
Date :
2010-02-02 07:22:56 |
By :
salapao_codeman |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เหอๆ มันเป็นหลักการเรียงลำดับของ sql อยู่แล้วอะเน๊าะ
เพิ่งรู้ว่าใช้ abs() ได้ - -"
|
|
|
|
|
Date :
2010-02-02 08:46:48 |
By :
yomaster |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เฮ้อ.. ไม่มีใครรู้เลยเหรอเนี่ย ไหนๆไปคุ้ยเจอแล้ว เอามาตอบให้เผื่อคนอื่นจะเจอปัญหาเดียวกัน
การเรียงลำดับตัวอักษรและตัวเลข
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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
order by length(pl.product_name), pl.product_name asc
length(pl.product_name) น่าจะเป็นจำนวนตัวอักษรครับ
วิธีการเขียนแบบนี้หมายถึง
ให้เรียงลำดับจำนวนตัวอักษรพร้อมกับเรียงลำดับตัวอักษรไปด้วย
|
|
|
|
|
Date :
2010-02-04 23:41:24 |
By :
xbeginner01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แล้ววิธีนี้จะแน่นอนมั้ยครับ จะมีผลเสียหรือพลาดในภายหลังมั้ยครับ อย่างเช่น
เล่ม 1 ...ไปถึง เล่ม 25
เล่มพิเศษ 1
หรือมีการกรอกแบบแปลกๆอื่นๆ มันจะยังคงเรียงจาก ก-ฮ ก่อนแล้วตามด้วยตัวเลขรึเปล่าครับ
|
|
|
|
|
Date :
2010-02-05 00:38:33 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จะว่าผิดพลาดก็ผิดได้น่ะครับสมมติน่ะ
ถ้ามึถึง เล่ม 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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไอเดียดีเลย ขอบคุณครับ
|
|
|
|
|
Date :
2010-02-05 14:23:04 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|