gpt4 book ai didi

mysql - 为什么 sql = FALSE 总是返回 true

转载 作者:可可西里 更新时间:2023-11-01 07:03:37 24 4
gpt4 key购买 nike

无论我在 MySQL 5.0 中做什么如

SELECT 'test' = FALSE

SELECT '' = FALSE

我总是在 SQL 中返回 1。这是什么原因?我期待 0 或 FALSE

编辑 为问题添加上下文。问题是这样产生的,刚好$name不小心变成了false导致这个join总是pass,然后就想知道为什么会这样。

SELECT a.id
FROM user a
INNER JOIN inventory b ON b.user_id = a.id AND b.name = $name

最佳答案

在 MySql 中 FALSE是常量文字,始终被评估为 0。

因此您正在检查 'test' = 0'' = 0,并且由于您正在将字符串与整数进行比较,MySql 将尝试转换将字符串转换为整数。

如果您尝试这个查询:

SELECT 'test' = FALSE

它将返回 1 (TRUE),因为 'test' 将被转换为 0,而如果您尝试这样做:

SELECT '1test' = FALSE

它将返回 0 (FALSE),因为 '1test' 将被转换为 1。

关于mysql - 为什么 sql = FALSE 总是返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15937253/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com