Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 对字母数字字符串中的中间和最后三个数字进行排序_Php_Mysql_Sorting - Fatal编程技术网

Php 对字母数字字符串中的中间和最后三个数字进行排序

Php 对字母数字字符串中的中间和最后三个数字进行排序,php,mysql,sorting,Php,Mysql,Sorting,我在MySQL数据库中存储了以下模式字符串: Pattern: 1AB23CD456 在对最后三个数字进行排序之前,我想对AB和CD之间的中间数字进行排序 对于最后三个数字的排序,我有以下代码 SELECT * FROM Table1 ORDER BY RIGHT(pattern,3) 电流输出: +------------+ | 1aa22aa101 | | 1bb33bb101 | | 1cc44cc101 | | 1dd11dd101 | +------------+

我在MySQL数据库中存储了以下模式字符串:

Pattern: 1AB23CD456
在对最后三个数字进行排序之前,我想对
AB
CD
之间的中间数字进行排序

对于最后三个数字的排序,我有以下代码

SELECT * FROM Table1 ORDER BY RIGHT(pattern,3)
电流输出:

+------------+
| 1aa22aa101 |   
| 1bb33bb101 |   
| 1cc44cc101 |   
| 1dd11dd101 |
+------------+
预期产出:

+------------+
| 1cc44cc101 |   
| 1bb33bb101 |   
| 1aa22aa101 |   
| 1dd11dd101 |
+------------+

注意:我想按描述顺序对中间两个数字进行排序。

这里有一种方法:

order by substring_index(col, 'ab', 2) + 0 DESC
这实际上并不查找
'cd'
。相反,它只接受
'ab'
后面的数字。这是使用MySQL的一个称为静默转换的功能,它将字符串转换为数字而不产生错误。它只是转换前导数字

要按此数字排序,然后按最后三个数字排序:

order by substring_index(col, 'ab', 2) + 0 DESC,
         right(col, 3) + 0;

以下是一种执行此操作的方法:

order by substring_index(col, 'ab', 2) + 0 DESC
这实际上并不查找
'cd'
。相反,它只接受
'ab'
后面的数字。这是使用MySQL的一个称为静默转换的功能,它将字符串转换为数字而不产生错误。它只是转换前导数字

要按此数字排序,然后按最后三个数字排序:

order by substring_index(col, 'ab', 2) + 0 DESC,
         right(col, 3) + 0;

以下是一种执行此操作的方法:

order by substring_index(col, 'ab', 2) + 0 DESC
这实际上并不查找
'cd'
。相反,它只接受
'ab'
后面的数字。这是使用MySQL的一个称为静默转换的功能,它将字符串转换为数字而不产生错误。它只是转换前导数字

要按此数字排序,然后按最后三个数字排序:

order by substring_index(col, 'ab', 2) + 0 DESC,
         right(col, 3) + 0;

以下是一种执行此操作的方法:

order by substring_index(col, 'ab', 2) + 0 DESC
这实际上并不查找
'cd'
。相反,它只接受
'ab'
后面的数字。这是使用MySQL的一个称为静默转换的功能,它将字符串转换为数字而不产生错误。它只是转换前导数字

要按此数字排序,然后按最后三个数字排序:

order by substring_index(col, 'ab', 2) + 0 DESC,
         right(col, 3) + 0;

我认为这应该奏效:

SELECT * FROM Table1 ORDER BY substring(pattern,4,2) desc, RIGHT(pattern,3)

我认为这应该奏效:

SELECT * FROM Table1 ORDER BY substring(pattern,4,2) desc, RIGHT(pattern,3)

我认为这应该奏效:

SELECT * FROM Table1 ORDER BY substring(pattern,4,2) desc, RIGHT(pattern,3)

我认为这应该奏效:

SELECT * FROM Table1 ORDER BY substring(pattern,4,2) desc, RIGHT(pattern,3)


ab和cd出现的位置是否相同?否,ab和cd可以是任何字符组合。您是否可以更新相关样本数据集以显示不同的出现,现在它看起来和康斯坦特威尔一样ab和cd的组合ab和cd之间总是两位数?数字和字符位置在模式中是相同的每个字符可以是:a-z每个数字可以是:0-9位置对于ab和cd的出现是相同的?否,ab和cd可以是任何字符组合。您是否可以更新相关的示例数据集,以显示不同的匹配项,现在它看起来和康斯坦特威尔一样ab和cd的组合ab和cd之间总是两位数?数字和字符位置在模式中是相同的每个字符可以是:a-z每个数字可以是:0-9位置对于ab和cd的出现是相同的?否,ab和cd可以是任何字符组合。您是否可以更新相关的示例数据集,以显示不同的匹配项,现在它看起来和康斯坦特威尔一样ab和cd的组合ab和cd之间总是两位数?数字和字符位置在模式中是相同的每个字符可以是:a-z每个数字可以是:0-9位置对于ab和cd的出现是相同的?否,ab和cd可以是任何字符组合。您是否可以更新相关的示例数据集,以显示不同的匹配项,现在它看起来和康斯坦特威尔一样ab和cd的组合ab和cd之间总是两位数?数字和字符位置在模式中是相同的每个字符可以是:a-z每个数字可以是:0-9ab和cd可以是任意两个字符combination@hsaka当前位置你的问题不清楚,我只是想警告一下这种模糊性,答案仍然是“正确的”:)ab和cd可以是任意两个字符combination@hsaka:你的问题不清楚,我只是想警告一下这种模糊性,答案仍然是“正确的”:)ab和cd可以是任意两个字符combination@hsaka当前位置你的问题不清楚,我只是想警告一下这种模糊性,答案仍然是“正确的”:)ab和cd可以是任意两个字符combination@hsaka:你的问题不清楚,我只是想警告一下这种模糊性,答案仍然是“正确的”: