【问题标题】:Compare strings as numbers将字符串与数字进行比较
【发布时间】:2014-11-07 14:22:00
【问题描述】:

我在 MySQL 数据库中有一些价格,写成这样:

19900
29900
30000
28900
etc.

如何将这些作为数字进行比较,以便在 SELECT 查询中正确使用 MIN(价格)?

我找到了MySql: Compare 2 strings which are numbers?,但看起来我无法正确嵌套 MIN 和 CAST。

【问题讨论】:

    标签: mysql select casting min


    【解决方案1】:

    link 对您有帮助

    试试this sql fiddle!

    或 试试这个:

    SELECT min(CONVERT(price,UNSIGNED INTEGER)) AS num
    FROM sample
    

    【讨论】:

      【解决方案2】:

      您可以在min 中使用cast 表达式:

      SELECT MIN (CAST mycolumn AS signed)
      FROM   my_table
      

      【讨论】:

      • 谢谢,但这正是我尝试过的。然后我得到这个错误:你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法,以便在第 1 行的 'price AS signed)、image FROM masterproducts m、shopproducts s' 附近使用 价格字段是一个 varchar 查询:SELECT name, MIN(price AS SIGNED) , 图片来自 masterproducts m, shopproducts s WHERE m.name = s.mastername
      • 您在price 之前缺少cast 关键字。
      • 没有帮助(CAST 关键字在那里,只是我在这里输入内容时错过了它......)