所以我有一个varchar列应该存储产品价格(不要问我怎么结果,但现在我没有选择改变这个...叹息),它也可以是空白的,或者包含其中一个文本(字面意思)“null”,“OUT”,其中两者都代表0的价格。找到该列的MIN和MAX值的最佳和最有效的方法是什么?
PS:我对php / mysql混合解决方案持开放态度,因为我需要最优化和最有效的方法。这张桌真的很大......答案 0 :(得分:3)
这样的事情应该有效并且合理有效。不过,在任何情况下都不会很快。
SELECT
MIN(CAST(price AS DECIMAL(8,2))) as price_min,
MAX(CAST(price AS DECIMAL(8,2))) as price_max
FROM products
WHERE price NOT IN('', 'null', 'OUT')
经过测试后,我注意到显然铸件是自动完成的,所以你可以这样做:
SELECT
MIN(price) as price_min,
MAX(price) as price_max
FROM products
WHERE price NOT IN('', 'null', 'OUT')