gpt4 book ai didi

mysql - 在 IN() 条件中混合带引号和不带引号的值 - MySQL 怪癖还是一般问题?

转载 作者:行者123 更新时间:2023-12-02 11:01:36 25 4
gpt4 key购买 nike

MySQL 手册包含the following interesting note关于在 IN 条件下混合带引号和不带引号的值:

You should never mix quoted and unquoted values in an IN() list because the comparison rules for quoted values (such as strings) and unquoted values (such as numbers) differ. Mixing types may therefore lead to inconsistent results.

但是,它并没有真正解释为什么这是一个问题。它有示例,但没有显示正在查询的数据或结果,因此它们仅用作说明,而没有对问题做出任何解释。

我有两个问题:

  1. 为什么这会导致 MySQL 出现问题?理想情况下,提供一个结果错误/不一致/不直观的示例来进行演示。
  2. 这是 MySQL 特有的怪癖还是适用于其他数据库系统? 特别是,我对此问题是否影响 SQL Server 很感兴趣,但最好希望在一般情况下回答问题案例。

最佳答案

这取决于您认为“非直观”的内容。这将返回 false:

'00' in ('0', '01')

但是,这会返回 true:

'00' in (0, '01')

关于mysql - 在 IN() 条件中混合带引号和不带引号的值 - MySQL 怪癖还是一般问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60579338/

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