mysql用字母和单词排序单元格

时间:2013-11-09 03:52:38

标签: mysql database sorting jquery-datatables

我得到的单元格可能包含以下数据(错误数量)

1
2
3
PASS
NoFileFound
NoLog
99
10
2

我想按升序和降序排序,我将PASS视为值0,任何其他基于文本的值应视为1错误的值。截至目前,这些单元格在mysql数据库中存储为“text”。如何为MYSQL做到这一点?我需要做些什么改变?

1 个答案:

答案 0 :(得分:0)

试试这个:

SELECT Number FROM (
   SELECT IF(valueField='PASS',0,1) as Number  FROM TableMix 
   WHERE concat('',valueField * 1) <> valueField ) A
UNION ALL
SELECT Number FROM (
  SELECT CAST(valueField as UNSIGNED) as Number  FROM TableMix 
  WHERE concat('',valueField * 1) = valueField ) B
ORDER BY Number

查看我的SqlFiddle Demo

这个原始价值包括:

SELECT Number, valueField FROM (
   SELECT IF(valueField='PASS',0,1) as Number, valueField  FROM TableMix 
   WHERE concat('',valueField * 1) <> valueField ) A
UNION ALL
SELECT Number, valueField FROM (
  SELECT CAST(valueField as UNSIGNED) as Number, valueField  FROM TableMix 
  WHERE concat('',valueField * 1) = valueField ) B
ORDER BY Number

请参阅此Demo