我有这个简单的查询,并想知道是否有可能只提取信息arc
只等于数字而不是文本。
代码:
$sql = mysql_query("SELECT * FROM `comics` ORDER BY `id` DESC LIMIT 20");
答案 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
类似地:
答案 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]+';