有没有办法查询mysql,只能得到数字结果?
我有这个简单的查询,并想知道是否有可能只提取信息,其中arc
仅等于数字而不是文本。有没有办法查询mysql,只能得到数字结果?
代码:
$sql = mysql_query("SELECT * FROM `comics` ORDER BY `id` DESC LIMIT 20");
据我所知,没有 “则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
同理:
ty像一个魅力工作! – rackemup420 2012-03-09 19:31:46
'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
使用正则表达式:
是什么'arc'?表中的一个字段?你为什么只需要数字? – 2012-03-09 19:29:38
是弧是一个字段,我只需要数字,因为有一个处理的顺序,如果弧不是一个数字,那么它不准备好处理。 – rackemup420 2012-03-09 19:32:47