0
所以我試圖通過一個行的json encdoded值的總和來排序數據庫中的項目。例如幾排的樣子:使用common_schema函數的mysql SELECT select_option返回NULL
id | program_invested_details | program_add_status | program_status
5 | {"invested":"120.00","received":5.4} | 4 | 1
7 | {"invested":"120.00","received":9} | 4 | 1
15 | {"invested":"110.00","received":50} | 4 | 1
52 | {"invested":"110.00","received":2} | 4 | 1
和我的查詢看起來像:
SELECT id, ((`common_schema`.`get_option`("program_invested_details", "received") * 100)/`common_schema`.`get_option`("program_invested_details", "invested")) AS PERCENT_TOTAL FROM `hp_programs_list` WHERE `program_add_status` = 4 AND `program_status` = 1 ORDER BY PERCENT_TOTAL DESC
但此查詢結果後是不一樣的,因爲它應該是:
mysql> SELECT id, ((`common_schema`.`get_option`("program_invested_details", "received") * 100)/`common_schema`.`get_option`("program_invested_details", "invested")) AS PERCENT_TOTAL FROM `hp_programs_list` WHERE `program_add_status` = 4 AND `program_status` = 1 ORDER BY PERCENT_TOTAL DESC;
+-----+---------------+
| id | PERCENT_TOTAL |
+-----+---------------+
| 314 | NULL |
| 308 | NULL |
| 307 | NULL |
| 302 | NULL |
| 287 | NULL |
| 285 | NULL |
| 280 | NULL |
| 277 | NULL |
| 269 | NULL |
| 319 | NULL |
| 317 | NULL |
+-----+---------------+
11 rows in set (0.00 sec)
所以PERCENT_TOTAL是NULL而不是SUM。哪裏有問題?
嘗試只是'select get_option(...)'來查看是否返回適當的值?我猜get_option在失敗時返回null,這會使其他一切都變得有害。 –
是的,只用'get_option(「program_invested_details」,「received」)嘗試過,它仍然返回NULL –
然後你必須弄清楚爲什麼發生這種情況。 –