我的数据库中有一个类型为 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/