Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.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 mysql查询对数组值排序_Php_Mysql_Arrays_Sorting - Fatal编程技术网

如何使用PHP mysql查询对数组值排序

如何使用PHP mysql查询对数组值排序,php,mysql,arrays,sorting,Php,Mysql,Arrays,Sorting,我的DB表字段包含带有数据数组的值,我需要单独对第一个值进行排序 Pid |价格 1 | 213,4566,112 2 | 100,452,567 3 | 653,344,6322 4 | 55,222,42,44 5 | 522 我希望它以价格优先的值按升序排序,如下所示 Pid |价格 4 | 55,222,42,44 2 | 100,452,567 1 | 213,4566,112 5 | 522 3 | 653,344,6322 我需要一个使用PHP的Mysql查询。您可以使用以下查

我的DB表字段包含带有数据数组的值,我需要单独对第一个值进行排序

Pid |价格
1 | 213,4566,112
2 | 100,452,567
3 | 653,344,6322
4 | 55,222,42,44
5 | 522
我希望它以价格优先的值按升序排序,如下所示

Pid |价格
4 | 55,222,42,44
2 | 100,452,567
1 | 213,4566,112
5 | 522
3 | 653,344,6322

我需要一个使用PHP的Mysql查询。

您可以使用以下查询:

演示:

提示:您应该避免像
Price
这样用逗号分隔值的列。
规范化您的数据库/表


您不应该将逗号分隔的数据存储到这样的字段中。您应该使用一个单独的表来存储价格,每个价格一行(因此,如果您在该表中查找pid,您将返回多行)。我认为您实际上可能需要使用
CAST(SUBSTRING_INDEX(price,,,,,,,1)作为符号)
以便将它们作为数字而不是字符串排序。否则,
100
(Pid 2)可能是第一个。@RocketHazmat-没错!更新并添加了演示
SELECT * FROM table 
ORDER BY CAST(SUBSTRING_INDEX(Price, ',', 1) AS SIGNED) ASC