mysql - 如何计算默认实例没有的行中的值?

标签 mysql

解释:

我有一个用户表,其中有一列 android_token,可以为空,但 DEFAULT 没有,意味着默认情况下它不会为每行发送空值。

现在..

当我想选择所有 android_token 不为空的用户时,我无法得到结果..

例如

SELECT * from tbl_users where android_token IS NOT NULL; 

它没有给我排序结果,因为具有 android_token 值的行是可以的,但是其他 android_token 为空的用户甚至没有 NULL 值,在表 android_token DEFAULT IS NONE 的结构中。

有人可以解释一下,如何更新表并仅为空的每一行发送 NULL 值,或者如何对具有当前配置的 android_token 的用户进行排序?

提前致谢。

最佳答案

说明

隐式默认值定义如下:

  • 对于数字类型,默认值为 0,但对于 使用 AUTO_INCRMENT 声明的整数或浮点类型 属性,默认值是序列中的下一个值。

  • 对于 TIMESTAMP 以外的日期和时间类型,默认值为 该类型的适当“零”值。对于第一个 TIMESTAMP 列 在表中,默认值是当前日期和时间。看 第 10.3 节,“日期和时间类型”。

  • 对于ENUM以外的字符串类型,默认值为空 字符串。对于 ENUM,默认值为第一个枚举值。

代码

如果 android_token 是字符串:

UPDATE tbl_users SET android_token=NULL WHERE android_token='';

这会将所有空单元格更改为 NULL

关于mysql - 如何计算默认实例没有的行中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53951687/

相关文章:

mysql - 如何查找一个表中确实存在于另一个表中但基于日期的记录?

mysql - 如何在我的 SELECT 中过滤 GROUP_CONCAT

mysql - 聊天服务表设计的性能考虑

mysql - 使用 MySQL 中的两个表获取名称的存储过程

java - 第一次尝试设置测试数据库但得到 com.mysql.jdbc.exceptions.jdbc4.CommunicationsException : Communications link failure

mysql - 将多行 MySQL 行转换为多列和单行

php - MySQL 大圆距离(半正矢公式)

mysql - 错误 : syntax error at or near ";" Position: 102

php - 使用 php 创建异步数据库

java - DriverManager.getConnection 无法解析为类型