我有一個基於PHP的應用程序,存儲用戶輸入的發票。目前,我有存儲在MySQL數據庫中的表爲double
像這樣的發票金額:MySQL搜索Double與貨幣格式
+------+--------------+--------------+----------------+----------------+-------------+-----------+---------------+-------------+-------------+-----------------+
| id | date_entered | invoice_date | invoice_number | invoice_amount | client_type | unique_id | supplier_type | supplier_id | category_id | childcare_hours |
+------+--------------+--------------+----------------+----------------+-------------+-----------+---------------+-------------+-------------+-----------------+
| 1 | 1411098397 | 1411048800 | 123 | 0.01 | 0 | 137 | 0 | 139 | 5 | NULL |
| 2 | 1412123404 | 1416920400 | 5093 | 130 | 0 | 168 | 0 | 19 | 18 | NULL |
| 3 | 1412125933 | 1412085600 | 000 | 79 | 0 | 151 | 0 | 177 | 8 | NULL |
| 4 | 1412645652 | 1412600400 | 000 | 60.8 | 0 | 104 | 0 | 179 | 9 | NULL |
| 5 | 1412647563 | 1409320800 | 804560 | 225.5 | 0 | 18 | 0 | 174 | 10 | NULL |
我也是用的DataTable toorganise數據。我正在使用服務器端處理來執行數據查找以返回JSON。
我遇到的問題是,用戶正試圖通過價格eith通過鍵入$123
或123.50
該搜索不工作的SQL被genrated像這樣:SELECT * FROM invoices WHERE invoice_amount LIKE "%$123%";
這obviosuly未能因數據以雙精度存儲在數據庫中。
我的問題是,有沒有辦法讓SQL(或許也許PHP)搜索正確的值,不管客戶端類型是什麼?
也許你是正確的,也許我應該在發送之前「清理」查詢服務器(或一旦它在服務器上) –
在執行sql查詢之前,應該刪除「$」。 – WisdmLabs
這是我的解決方案。在將搜索發送到服務器之前,我使用javascript更改了值。刪除'$'並使用'parseFloat()'確保該數字是一個浮點數 –