Mysql排序拆分字符串

时间:2014-01-27 17:09:01

标签: mysql string sorting split

我有下表,比如说,MyDRAW

DRAWNO   PRIZENO
A123/14  8458

我设法使用SUBSTRING功能将PRIZENO分成4个字符,8 4 5 8

SUBSTRING(PRIZENO, 1, 1) AS FIRSTNo,
SUBSTRING(PRIZENO, 2, 1) AS SECONDNo,
SUBSTRING(PRIZENO, 3, 1) AS THIRDNo,
SUBSTRING(PRIZENO, 2, 1) AS FOURTHNo,

但是,我的问题是如何将这个数字分类为他们的ASC顺序,例如:4 5 8 8

因此,排序后,我的选择结果可以如下:

DRAWNO  PRIZENO FIRSTNo SECONDNo THIRDNo FOURTHNO SORTED1 SORTED2 SORTED3 SORTED4
A123/14 8458    8       4        5       8        4       5       8       8

感谢。

1 个答案:

答案 0 :(得分:0)

没有选择,我不确定是否有任何好/更好的方式......

我确实喜欢这个......

CONCAT(
IF(SUBSTRING(PRIZENO, 1, 1)=0,"0",""),
IF(SUBSTRING(PRIZENO, 2, 1)=0,"0",""),
IF(SUBSTRING(PRIZENO, 3, 1)=0,"0",""),
IF(SUBSTRING(PRIZENO, 4, 1)=0,"0",""),
IF(SUBSTRING(PRIZENO, 1, 1)=1,"1",""),
IF(SUBSTRING(PRIZENO, 2, 1)=1,"1",""),
IF(SUBSTRING(PRIZENO, 3, 1)=1,"1",""),
IF(SUBSTRING(PRIZENO, 4, 1)=1,"1",""),
IF(SUBSTRING(PRIZENO, 1, 1)=2,"2",""),
IF(SUBSTRING(PRIZENO, 2, 1)=2,"2",""),
IF(SUBSTRING(PRIZENO, 3, 1)=2,"2",""),
IF(SUBSTRING(PRIZENO, 4, 1)=2,"2",""),
IF(SUBSTRING(PRIZENO, 1, 1)=3,"3",""),
IF(SUBSTRING(PRIZENO, 2, 1)=3,"3",""),
IF(SUBSTRING(PRIZENO, 3, 1)=3,"3",""),
IF(SUBSTRING(PRIZENO, 4, 1)=3,"3",""),
IF(SUBSTRING(PRIZENO, 1, 1)=4,"4",""),
IF(SUBSTRING(PRIZENO, 2, 1)=4,"4",""),
IF(SUBSTRING(PRIZENO, 3, 1)=4,"4",""),
IF(SUBSTRING(PRIZENO, 4, 1)=4,"4",""),
IF(SUBSTRING(PRIZENO, 1, 1)=5,"5",""),
IF(SUBSTRING(PRIZENO, 2, 1)=5,"5",""),
IF(SUBSTRING(PRIZENO, 3, 1)=5,"5",""),
IF(SUBSTRING(PRIZENO, 4, 1)=5,"5",""),
IF(SUBSTRING(PRIZENO, 1, 1)=6,"6",""),
IF(SUBSTRING(PRIZENO, 2, 1)=6,"6",""),
IF(SUBSTRING(PRIZENO, 3, 1)=6,"6",""),
IF(SUBSTRING(PRIZENO, 4, 1)=6,"6",""),
IF(SUBSTRING(PRIZENO, 1, 1)=7,"7",""),
IF(SUBSTRING(PRIZENO, 2, 1)=7,"7",""),
IF(SUBSTRING(PRIZENO, 3, 1)=7,"7",""),
IF(SUBSTRING(PRIZENO, 4, 1)=7,"7",""),
IF(SUBSTRING(PRIZENO, 1, 1)=8,"8",""),
IF(SUBSTRING(PRIZENO, 2, 1)=8,"8",""),
IF(SUBSTRING(PRIZENO, 3, 1)=8,"8",""),
IF(SUBSTRING(PRIZENO, 4, 1)=8,"8",""),
IF(SUBSTRING(PRIZENO, 1, 1)=9,"9",""),
IF(SUBSTRING(PRIZENO, 2, 1)=9,"9",""),
IF(SUBSTRING(PRIZENO, 3, 1)=9,"9",""),
IF(SUBSTRING(PRIZENO, 4, 1)=9,"9","")) AS CON1,