有没有办法查询mysql并只提取数字结果?

时间:2012-03-09 19:26:41

标签: mysql

我有这个简单的查询,并想知道是否有可能只提取信息arc只等于数字而不是文本。

代码:

$sql = mysql_query("SELECT * FROM `comics` ORDER BY `id` DESC LIMIT 20");

3 个答案:

答案 0 :(得分:7)

AFAIK,没有" IsNumeric()" MySql中的函数。

但是,您可以使用正则表达式:

  

How do I check to see if a value is an integer in MySQL?

     

我假设您要检查字符串值。一个不错的方法是   REGEXP运算符,将字符串与正则表达式匹配。只是   做

select field from table where field REGEXP '^-?[0-9]+$';
  这是相当快的。如果您的字段是数字,只需测试

ceil(field) = field

类似地:

http://forums.mysql.com/read.php?60,1907,38488

答案 1 :(得分:0)

出于学术目的,我提供了隐式转换的情况。执行数学函数时,MySQL将尝试将字符串转换为整数,如果失败则返回0。

因此...

SELECT 1 * '1'

返回: 1

SELECT 1 * 'hello'

返回 0

因此,如果0不是您字段中的有效数字,则只需执行

即可
SELECT * FROM comics WHERE arc * 1 > 0

答案 2 :(得分:0)

使用正则表达式:

select * from comics where arc REGEXP '[0-9]+';