MySQL 中的排序/排序

2023-12-03

我在尝试对表格内容进行排序时遇到一些问题programs按列prog_id它以以下格式保存每个程序的 id:

prog_id

1.0.1、1.0.2、1.0.3、...、1.0.10、1.0.11、...、1.1.0、1.1.1 等

当我按 prog_id 排序时,我得到

1.0.1、1.0.10、1.0.11、1.0.2、1.0.3 ...

就 MySQL 而言,这是正确的,但对于数据显示的顺序来说,这是不正确的。 我尝试使用另一列,orderby我可以在其中保存索引并按其排序,但我必须手动输入值,并且我的表中有几千行,这将需要相当长的时间才能完成。

我可以使用什么技巧来让我的数据以“正确”的顺序显示?顺便说一句,我正在使用 PHP 和 MySQL。


您可以将它们分成几个组成部分,例如:

SELECT REPLACE(SUBSTRING(SUBSTRING_INDEX(prog_id, '.', 1),
       LENGTH(SUBSTRING_INDEX(prog_id, '.', 1 -1)) + 1),
       '.', '') AS id1,
       REPLACE(SUBSTRING(SUBSTRING_INDEX(prog_id, '.', 2),
       LENGTH(SUBSTRING_INDEX(prog_id, '.', 2 -1)) + 1),
       '.', '') AS id2,
       REPLACE(SUBSTRING(SUBSTRING_INDEX(prog_id, '.', 3),
       LENGTH(SUBSTRING_INDEX(prog_id, '.', 3 -1)) + 1),
       '.', '') AS id3
FROM programs
ORDER BY CAST(id1 AS INT(4)), CAST(id2 AS INT(4)), CAST(id3 AS INT(4))

最好的方法是创建像 yoda2k 所说的额外字段,但如果您没有该访问权限,那么您可以使用上面的方法。

您可以将其封装到一个函数中,例如:

CREATE FUNCTION SPLIT_STR(
  x VARCHAR(255),
  delim VARCHAR(12),
  pos INT
)
RETURNS VARCHAR(255)
RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),
       LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1),
       delim, '');

Then do:

SELECT SPLIT_STR(prog_id, '.', 1) AS id1,
   SPLIT_STR(prog_id, '.', 2) AS id2,
   SPLIT_STR(prog_id, '.', 3) AS id3,
FROM programs
ORDER BY CAST(id1 AS INT(4)), CAST(id2 AS INT(4)), CAST(id3 AS INT(4))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL 中的排序/排序 的相关文章

  • 如何在Sequelize中从主模型同一级别的包含模型返回结果?

    这是我在项目中完成的代码和结果 我想获得包含模型的结果与主模型相同的结果 下面的代码是我所做的 序列化查询 User findAll include model Position attributes POSITION NAME then
  • 使用向量的 merge_sort 在少于 9 个输入的情况下效果很好

    不知何故 我使用向量实现了合并排序 问题是 它可以在少于 9 个输入的情况下正常工作 但在有 9 个或更多输入的情况下 它会执行一些我不明白的操作 如下所示 Input 5 4 3 2 1 6 5 4 3 2 1 9 8 7 6 5 4 3
  • 如何使用 PHP 从 MySQL 检索特定值?

    好吧 我已经厌倦了 过去一周我花了大部分空闲时间试图解决这个问题 我知道 SQL 中的查询已更改 但我无法弄清楚 我能找到的所有其他帖子似乎都已经过时了 如果有人能帮助我 我将非常感激 我想做的就是使用手动输入数据库的唯一 密码 来检索行的
  • 如何使用 PHP 获取列中的所有值?

    我一直在到处寻找这个问题 但仍然找不到解决方案 如何从 mySQL 列中获取所有值并将它们存储在数组中 例如 表名称 客户 列名称 ID 名称 行数 5 我想获取此表中所有 5 个名称的数组 我该如何去做呢 我正在使用 PHP 我试图 SE
  • 哪个是识别关系或非识别关系中的子表?

    在表之间的识别和非识别关系的上下文中 MySQL 文档大量将表称为父表和子表 如何判断哪个表是父表 哪个表是子表 子表 A K A 弱实体 http en wikipedia org wiki Weak entity 是一个表 其主键属性d
  • INNER JOIN 可用作 SELECT,但不能用作 DELETE [重复]

    这个问题在这里已经有答案了 为什么这个有语法错误 DELETE FROM print mailing request pmr INNER JOIN person p ON p id pmr person AND p email LIKE T
  • ORDER BY 之后的 GROUP BY

    我需要去做GROUP BY after ORDER BY 我不明白为什么 MySQL 不支持这一点 这是我的代码 SELECT pages id contents id language ORDER BY FIND IN SET langu
  • 在 MySQL 中创建布尔列并将 false 作为默认值?

    我想在 MySQL 中创建一个表boolean默认值为的列false 但它默认接受 NULL 你必须指定0 意思是假 或1 意思是 true 作为默认值 这是一个例子 create table mytable mybool boolean
  • 如何使用 exec.Command 在 golang 中执行 Mysql 脚本

    您好 我正在尝试执行一个脚本以使用 Golang 将数据填充到数据库中 func executeTestScript cmd exec Command usr local mysql bin mysql h127 0 0 1 P3333 u
  • ggplot2 方面的内部排序

    我正在尝试在 ggplot2 中绘制一个方面 但我很难使不同方面的内部顺序正确 数据如下 head THAT EXT ID FILE GENRE NODE 1 CKC 1823 01 CKC Novels better 2 CKC 1824
  • 1:1 关系中的双向外键约束

    我正在使用 MySQL 数据库 在我的关系数据模型中 我有两个相互 1 1 关联的实体 在我的架构中 通过将 FK 字段放入两个表之一中来建立 1 1 关系 该字段与另一个表的 PK 相关 两个表都有 PK 并且都是自动递增的 BIGINT
  • 使用查询表达式对 List 进行排序

    我在使用 Linq 订购这样的结构时遇到问题 public class Person public int ID get set public List
  • PHP + MySQL 队列

    我需要一个充当队列的简单表 我的 MySQL 服务器限制是我不能使用 InnoDB 表 只能使用 MyISAM 客户 工人将同时工作 他们每次都需要接受不同的工作 我的想法是执行以下操作 伪代码 job lt SELECT FROM que
  • MySQL 中的 group_concat 性能问题

    我添加了一个group concat到一个查询并杀死了性能 添加之前和之后的解释计划是相同的 所以我对如何优化它感到困惑 这是查询的简化版本 SELECT curRow curRow 1 AS row number docID docTyp
  • 选择 mysql 枚举的 php 函数

    因此 我创建了一个函数 它将从数据库中的枚举字段中提取值
  • 更改“Mysql 行大小太大”的限制

    我如何更改限制 行大小太大 gt 8126 将某些列更改为 TEXT 或 BLOB 或使用ROW FORMAT DYNAMIC or ROW FORMAT COMPRESSED可能有帮助 在当前行格式中 BLOB768 字节的前缀内联存储
  • 无法打开 phpmyadmin,require_once(./libraries/common.inc.php):无法打开流:没有这样的文件或目录

    当我做php usr share phpmyadmin index php 我明白了 PHP 警告 require once libraries common inc php 无法打开流 第 33 行 usr share phpmyadmi
  • 将正数放在负数之前

    所以我有在互联网上找到的这段代码 它采用负数和正数数组并重新排列数组 以便所有负数都在正数之前 但每个数字出现的位置必须保持相同 例如 如果我有 2 5 9 在有组织的数组中 2仍然必须是first的数量negative那些和 9必须是se
  • 如何在 XSLT 中应用字母数字排序

    根据以下 XML 在 XSL 中实现字母数字排序的最佳方法是什么 Edit 澄清一下 下面的 XML 只是一个简单的示例 真正的 XML 将包含更多的变体值 使用将标签文本拆分为文本和数字部分substring before and sub
  • 如何限制mySQL中的搜索和替换字符串

    我用它来搜索和替换 mySQL 中的字符串 UPDATE products SET prodname REPLACE prodname S S 这些产品包含诸如 TYLENOL TABS 100 S 之类的字符串 我想将其转换为 TYLEN

随机推荐

  • C# WinForms BindingList 和 DataGridView - 不允许编辑会阻止创建新行?我该如何解决这个问题?

    关于我将 DataGridView 与 BindingList 一起使用 我将禁用编辑当前行 但允许添加新行 我遇到的问题是 当我禁止编辑时 这似乎阻止了添加新行项目 因为当您将表格放入该新行的单元格时 它似乎不允许编辑 知道如何解决这个问
  • 计算字符串中元音的简单方法?

    如果我定义一个简单的字符串变量 我将如何以最简单的方式计算并输出字符串中的元音数量 我搜索并发现了许多类似的方法来做到这一点 但大多数似乎比必要的更复杂 它们都很实用 也许复杂性是必要的 但我正在寻找尽可能简单的解决方案 我的字符串变量类似
  • 输出中的括号和引号

    有时 当我使用打印功能时 输出中会出现括号和引号 我正在使用 Python 3 4 并在 Mac 上的 Sublime Text 中编写代码 这是一个例子 Input a 2 print a a Output a 2 我只想显示 a 和 2
  • java求二维数组之和

    我正在开发一个项目 我必须读取文件并将内容输入到二维数组中 然后我必须对矩阵的每一行 每一列和周长求和 到目前为止 除了外围之外 一切都正常 我试图为顶行 底行和两个外列的中间创建单独的 for 循环 矩阵文件如下所示 1 2 3 4 2
  • 在运行时更改嵌入的资源文件

    我编写了一个程序 该程序使用资源 嵌入的文本文件 作为程序的默认配置 我希望能够允许用户更改此默认行为 我想知道如何修改嵌入式资源文件 以便下次使用程序时它将使用修改后的版本 感谢您的帮助 我认为你正在寻找的是settings文件 嵌入的资
  • D3.js 中节点上的偏力

    我想分别向节点的几个子部分施加多个力 forceX 和forceY 为了更具说明性 我将此 JSON 作为我的节点的数据 word expression theme Th me 6 radius 3 word th orie theme T
  • Flash Builder“无法连接”错误

    我正在尝试使用 Flash Builder 4 调试 Flash Web 应用程序 但是 我不断收到此错误 无法连接 无法连接到 用于获取配置文件数据的应用程序 请尝试分析应用程序 再次 我将 Internet Explorer 8 Int
  • 将对象序列化为 XML 时以不同方式表示 Null 值

    我使用以下代码将对象序列化为 XML using System IO using System Xml Serialization namespace ConsoleApplication2 class Program static voi
  • 将注释语法添加到 C++ 源代码

    我想在我的 C 源代码中创建我自己的自定义注释 就像 Java 样式注释 标签 由于标准 C 语法不允许注释 因此我想根据自己的需要修改 增强编译器 但是 Visual Studio 是否公开其编译器内部结构供用户修改 例如其词法分析器的输
  • Maven“构建路径指定执行环境J2SE-1.5”,即使我将其更改为1.7

    在 Eclipse Juno 中 我安装了最新的 m2e 插件 1 2 20120903 1050 在首选项中 我在Java gt Installed JREs gt Add中添加了jdk1 7 0 11 然后指定了位置 C Program
  • 为什么 Firefox 和 Opera 会忽略 display: table-cell 内部的最大宽度?

    以下代码在 Chrome 或 IE 中正确显示 图像宽度为 200 像素 在 Firefox 和 Opera 中max width风格被完全忽略 为什么会发生这种情况 有没有好的解决办法 另外 哪种方式最符合标准 Note 对于这种特殊情况
  • 检查对象中的任何属性是否为零 - Swift 3

    我正在使用 Swift 3 想知道是否有任何方法可以检查对象中的所有属性是否都有值 nil Eg class Vehicle var name String var model String var VIN String let objCa
  • “无法实例化名为 UITableViewCellContentView 的类”iPhone 3.1.2

    我已经为自定义 UITableView 单元创建了一个笔尖 并按照文档和不同的教程来解决此错误 并且它不会停止 我研究了这个错误 人们说这是当你 import 标头但没有添加框架时发生的 好吧 UIKit 是自动添加的 我删除并再次添加它以
  • 呈现图像裁剪界面

    我正在尝试设计一个用于在 iPhone 操作系统中裁剪图像的 UI 并怀疑我正在以困难的方式处理事情 我的目标与 Tapbots 二人组使用 Pastebot 所做的差不多 在该应用程序中 它们使源图像变暗 但提供可移动且可调整大小的裁剪视
  • 为什么 Dispatcher.BeginInvoke 会为 ThreadStart 解包 TargetInitationException 而不是为 Action 解包?

    考虑以下两个应用 1 public partial class MainWindow Window public MainWindow InitializeComponent this Dispatcher UnhandledExcepti
  • 如何在Django REST框架中注册用户?

    我正在编写 REST APIDjango REST 框架 该 API 将成为社交移动应用程序的后端 遵循教程后 我可以序列化所有模型 并且能够创建新资源并更新它们 我正在使用 AuthToken 进行身份验证 我的问题是 一旦我有了 use
  • WebRTC 与 PeerJS:iceConnectionState 已断开连接?

    我的每台机器上都有一个节点应用程序正在运行这个例子在本地主机上使用我制作的 PeerServer 密钥 当我尝试在两者之间发起呼叫时 连接就会建立 例如 接收方说它接到了发送方的呼叫 但是 媒体流也会启动 视频 div 中显示黑框 然后连接
  • HTTP 状态 500 - Servlet 执行引发异常

    我在 servlet 中调用 java 类时收到此错误 这是错误 type Exception report message Servlet execution threw an exception description The serv
  • UIButton 框架不会随着使用 Swift 5 的可访问性大字体而增加

    UIButton 标题 body 或 headline 的大辅助字体大小不会增加按钮的框架 而只会增加标题文本 从下面的截图中可以清楚地看到 约束只有顶部 前导和尾随 也在代码中我添加了两行 button adjustsImageSizeF
  • MySQL 中的排序/排序

    我在尝试对表格内容进行排序时遇到一些问题programs按列prog id它以以下格式保存每个程序的 id prog id 1 0 1 1 0 2 1 0 3 1 0 10 1 0 11 1 1 0 1 1 1 等 当我按 prog id