当我仅在where条件下运行带有字段名称的SQL查询时,适用于字段名称的默认条件是什么?
Select * from tablename where fieldname;
答案 0 :(得分:1)
WHERE
子句包含布尔表达式。比如a = b and c = d
之类的东西。如果你有where fieldname
那么fieldname
就是那个布尔表达式。所以fieldname
通常是布尔列,例如
select * from client where is_active;
如果它不是布尔列,那么MySQL将尝试转换:
'012.3AB'
转换为12.3
)。然后,如上所述,数字将转换为布尔值。date '1999-02-03'
变为19990203
)。然后,如上所述,数字将转换为布尔值。(但我不知道这些转换是否可以保证适用。这仅仅是我所观察到的。)
通常,将where fieldname
与非布尔fieldname
一起使用没有多大意义。 MySQL的静默转换很容易出错;很容易忘记比较的正确部分而不是注意。在我看来MySQL会引发错误会更好。
答案 1 :(得分:0)
如果你跑
Select * from tablename where fieldname;
它将充当
SELECT * FROM `tablename` WHERE fieldname IS NOT NULL
和返回非空/空数据
如果您在PhpMyAdmin列中运行此功能,则指定将突出显示,数据不会显示空集
答案 2 :(得分:0)