gpt4 book ai didi

php - MySQL 选择 SQL : how to write order by to short 1. 1.1、1.1.2 等

转载 作者:行者123 更新时间:2023-11-30 23:49:14 25 4
gpt4 key购买 nike

在 MySQL 数据库中,我有 4 个表,每个表都有一个名为 content_id 的字段,该字段定义为 varchar。表1中content_id的取值是1个2个等等

表2中content_id的取值是1.11.2等等

表3中content_id的取值是1.1.2等等

表4中content_id的取值是1.1.1.11.1.1.2等等

我已经在 php 中编写了 SELECT 查询来读取这些表的记录。我使用“order by content_id”对记录进行了排序它适用于表 1。但是,对于表 2,我在 1.2 之前得到 1.10。表 3 和表 4 的类似问题。

我知道为什么会这样 - 这是因为按字母顺序 1.10 在 1.2 之前出现

但是,有什么办法可以将 1.1、1.2、1.3 ... 1.10、1.11 等排序?

谢谢

最佳答案

SELECT *
FROM table1
ORDER BY 1*SUBSTRING_INDEX(content_id, '.', 1) ASC,
1*SUBSTRING_INDEX(content_id, '.', -1) ASC

Sql fiddle

它首先按点左边的数字排序,然后按点右边的数字排序。它本质上是分割小数点。

关于php - MySQL 选择 SQL : how to write order by to short 1. 1.1、1.1.2 等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20079240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com