如何使用PHP mysql查询对数组值排序
我的DB表字段包含带有数据数组的值,我需要单独对第一个值进行排序如何使用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查询。您可以使用以下查
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