php - MySQL 如何检查字段中的值是整数还是文本

标签 php mysql text integer

我的数据库中有一个类型为 text 的字段,但它可能包含一些 integer 值。

当我从这个字段中选择数据时,我应该区分是整数还是文本(只是为了处理像 < 或 > 这样的 mysql 操作)所以我试过了:

$clause = "";
if(is_int($_GET['f']))
   $clause = " AND myValue < ".$_GET['f']."  ";
else
   $clause = " AND myValue = '".$_GET['f']."'  ";

$ds->query("SELECT * FROM myTable WHERE id = 1 ".$clause);

请注意引号,以防它不是整数。

但这不起作用,我认为这是正常的,因为该字段的类型为 text

请问您有解决这个问题的方法吗?提前致谢!

最佳答案

text 类型的列始终将其值视为文本(字符串),因此无论存储什么值,都需要将其包含在 ' 中。 MySQL 可以将数字作为字符串进行比较。

此外,is_int 不适合检查 $_GET 值,因为它们被视为字符串。请改用 is_numeric

但请注意对您问题的评论,如果您需要在数据库中单独存储整数和/或字符串,则重新设计更合适。

关于php - MySQL 如何检查字段中的值是整数还是文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14354144/

相关文章:

java - GAE 数据存储文本弄乱了 JSON 表示

linux - 将文本从 nano 编辑器复制到 shell

php - 代码点火器 : Unable to locate a model?

php - 使用数据库搜索并显示结果

Mysql 多分组依据

mysql - 容器配置和启动的 Docker 依赖设计

java - 如何处理 Mazovia 编码文本

php - 使用 foreach 循环创建多维数组

php - 如何使用关键字搜索收藏项目?

mysql - 将 Symfony 2.7 数据库连接更改为 mySql - XAMPP