有没有办法查询mysql,只能得到数字结果?

问题描述:

我有这个简单的查询,并想知道是否有可能只提取信息,其中arc仅等于数字而不是文本。有没有办法查询mysql,只能得到数字结果?

代码:

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

是什么'arc'?表中的一个字段?你为什么只需要数字? – 2012-03-09 19:29:38

+0

是弧是一个字段,我只需要数字,因为有一个处理的顺序,如果弧不是一个数字,那么它不准备好处理。 – rackemup420 2012-03-09 19:32:47

据我所知,没有 “则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

+0

ty像一个魅力工作! – rackemup420 2012-03-09 19:31:46

+0

'ceil(field)= field'示例测试以查看浮点列中的值是否为整数。 – 2012-03-09 19:45:23

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

所以......

SELECT 1 * '1' 

返回: 1

SELECT 1 * 'hello' 

返回 0

所以,如果0是不是在你的领域的有效数字,你可以简单地做

SELECT * FROM comics WHERE arc * 1 > 0 

使用正则表达式: