【问题标题】:mysql sorting cells with letters and wordsmysql用字母和单词对单元格进行排序
【发布时间】:2013-11-09 03:52:37
【问题描述】:

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

1
2
3
PASS
NoFileFound
NoLog
99
10
2

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

【问题讨论】:

  • 您已经在下面尝试过我的解决方案了吗?有什么反馈吗?

标签: mysql database sorting jquery-datatables


【解决方案1】:

试试这个:

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

【讨论】:

  • 我还没有尝试过。我必须为仅使用 ORDER BY 语法的数据表修改现有的 perl 包。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-02-08
  • 2021-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多