我正在尝试使用Sphinx(PHP)进行排序,以便按价格显示,但是当我这样做时,它会在£1.75之前显示10英镑,所以我需要在mySQL中使用ABS。
我试过这个:
$ s-> SetSortMode(SPH_SORT_EXPR,“ABS(display_price)ASC”);
它似乎无法奏效。
有人可以帮忙吗?
答案 0 :(得分:2)
检查是否将display_price属性视为搜索索引中的小数
可能你有
sql_attr_string = display_price
而不是
sql_attr_float = display_price
或
sql_attr_bigint = display_price
答案 1 :(得分:1)
SPH_SORT_EXPR始终是降序。 ASC / DESC仅用于EXTENDED模式。
要“反转”它以成为一个acsending,可以将它构建到表达式中。
$s->SetSortMode (SPH_SORT_EXPR, "1000000-CEIL(ABS(display_price*100.0))" );