小编bim*_*rez的帖子

SQL排序字符串,首先是数字特定模式

我有一个具有列(cat_name)的表.有些是字符串后跟数字,其他字符串只是普通字符串.我喜欢通过首先将所有字符串以'Level'开头来安排它.

期望的输出:

  • 1级物品
  • 2级物品
  • 3级项目
  • 5级物品
  • 10级物品
  • 12级物品
  • 22级物品
  • 苹果
  • 芒果
  • 其他
  • 特殊物品

我用过这个查询

SELECT * FROM category ORDER BY
(CASE WHEN cat_name LIKE 'Level%' THEN 0
ELSE 1
END) ASC, cat_name
Run Code Online (Sandbox Code Playgroud)

得到了

  • 1级物品
  • 10级物品
  • 12级物品
  • 2级物品
  • 22级物品
  • 3级项目
  • 5级物品
  • 苹果
  • 芒果
  • 其他
  • 特殊物品

并在stackoverflow中找到此查询以进行自然排序

SELECT * FROM category WHERE cat_name LIKE 'Level%' ORDER BY LEFT(cat_name,LOCATE(' ',cat_name)), CAST(SUBSTRING(cat_name,LOCATE(' ',cat_name)+1) AS SIGNED), cat_name ASC
Run Code Online (Sandbox Code Playgroud)

但我不知道如何将它与我的第一个查询集成.我能得到的最接近的是

SELECT * FROM category ORDER BY LEFT(cat_name,LOCATE(' ',cat_name)), CAST(SUBSTRING(cat_name,LOCATE(' ',cat_name)+1) AS SIGNED),
(CASE WHEN cat_name LIKE …
Run Code Online (Sandbox Code Playgroud)

mysql sql case sql-order-by

6
推荐指数
1
解决办法
1879
查看次数

SQL:如果使用字符类[0-9],为什么LIKE不起作用?

假设我有一张桌子:

当前表格:

title_id        title_name               title_qty
   1       A.I. Artificial Intelligence      2
   2       Batman Begins                    40
   3       2012                              7
   4       101 Dalmatians                   23
   5       Act of Valor                      1
   6       Batman                           50
   7       20 Million Miles to Earth       340
Run Code Online (Sandbox Code Playgroud)

我希望得到一个输出:

期望的输出:

   title_id        title_name               title_qty  title_char
       4          101 Dalmatians                23          #
       7          20 Million Miles to Earth     340         #
       3                2012                    7           #
       1          A.I. Artificial Intelligence  2           A
       5          Act of Valor                  1           A
       6          Batman                        50          B
       2          Batman Begins                 40          B …
Run Code Online (Sandbox Code Playgroud)

mysql sql case sql-like

6
推荐指数
1
解决办法
3938
查看次数

标签 统计

case ×2

mysql ×2

sql ×2

sql-like ×1

sql-order-by ×1