gpt4 book ai didi

php - MySQL 按行中数组的第一个元素排序

转载 作者:行者123 更新时间:2023-11-29 12:25:23 27 4
gpt4 key购买 nike

我在使用价格数组按行排序表时遇到问题。以下示例行:

1) ;100
2) ;50
3) ;50;100;300
4) ;30;150

我想按数组的第一个元素排序。当我按价格行 ASC 排序时,我得到:

1) ;100
2) ;30;150
3) ;50
4) ;50;100;300

这是错误的结果,因为“100”应该是最后一个......我尝试过:

ORDER BY CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(`price`, ';', 2), ';', 1) AS INT(3) ASC

但还是错了......有什么线索吗?

最佳答案

你们很接近。如果我这样做,我会使用 ( http://sqlfiddle.com/#!2/f57af/6/0 )

 ORDER BY 0+TRIM(LEADING ';' FROM price)

这是通过去掉任何分号,然后(通过 0+ 技巧)将 price 列的初始字符视为整数而不是文本来实现的。

你也可以这样做

ORDER BY 0+SUBSTRING_INDEX(SUBSTRING_INDEX(val,';',2), ';', -1)

ORDER BY CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(val,';',2), ';', -1) AS INTEGER)

您有两个问题。首先,外部 SUBSTRING_INDEX 操作需要第三个参数 -1。其次,您将转换为 INTEGER,而不是 INT(3)

关于php - MySQL 按行中数组的第一个元素排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28413867/

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