php - 如果变量存储为 varchar,是否可以将其识别为 int 或 float 或 time

标签 php mysql

我需要在 mysql 字段中存储一个分数,但这个分数可以是时间、整数或 float 。我这样做的第一种方法是确定分数类型,然后将其输入三个字段之一,但如果需要添加新的分数类型,我不想不断地向数据库添加字段。我记得在某个地方有人告诉我,如果您将 somethign 存储为 varchar,那么将无法将其读取为整数、 float 甚至日期。我的问题是,我能否将所有这三种类型存储为一种特定类型,但在从数据库中获取它并在我的 php 代码中使用它时以我需要的任何方式读取它?

最佳答案

在我看来,您可以将该字段建模为 FLOAT,除非您绝对需要了解存储的变量类型。可以通过转换为时间戳将时间转换为整数值。整数是实际(浮点)数字集的子集,所以我想你已经涵盖了所有内容。浮点运算可能会导致精度和相等性测试出现一些问题,所以要小心!

关于php - 如果变量存储为 varchar,是否可以将其识别为 int 或 float 或 time,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10486672/

相关文章:

通过终端连接 MySQL 失败

mysql - 状态缩写检查约束

php - 使用散列密码连接到 MySQL?

php - 获取数组中的最后一个值

php - XPATH 和带有命名空间的 XML

php - 你将如何在 php 5.4 中实现一个基本的文件上传进度条?

php - 如何防止 PHP 中的 SQL 注入(inject)?

mysql - 使用 Zend_Db 将 TIME 字段设置为 NULL

php - CakePHP3 : How to run custom SQL query in table model

php - 从 mysql 列导入到复选框 php