mysql - SQL 在数据库中搜索数字/货币值
2025-06-12 13:08:26 | 中国队世界杯出线 | admin | 5832°c
根据您的数据库,您可能可以这样做:
-- Oracle
WHERE TRUNC(amount, -decimals) = TRUNC(:user_input, -decimals)
-- MySQL
WHERE TRUNCATE(amount, -decimals) = TRUNCATE(:user_input, -decimals)
decimals我的意思是您要保留的小数点左侧的位数,即
TRUNC(5234.32, -3) = 5000.00
TRUNC(64.58, -1) = 60.00
在 SQL 中发现小数的一种愚蠢方法是:
-- Oracle
LENGTH(TO_CHAR(TRUNC(amount)))
-- MySQL
LENGTH(CAST(TRUNCATE(amount) AS CHAR))
当然,正如布兰科在回答中提到的那样,这可能会很慢