我得到的单元格可能包含以下数据(错误数量)
1
2
3
PASS
NoFileFound
NoLog
99
10
2
我想按升序和降序排序,我将PASS视为值0,任何其他基于文本的值应视为1错误的值。截至目前,这些单元格在mysql数据库中存储为“text”。如何为MYSQL做到这一点?我需要做些什么改变?
答案 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。