gpt4 book ai didi

mysql - 当我更改 WHERE 语句的格式时,为什么会得到不同数量的结果?

转载 作者:行者123 更新时间:2023-11-30 22:36:43 25 4
gpt4 key购买 nike

我正在编写一个 SQL 脚本(在 MySQL Workbench 中,如果相关的话),它涉及在我的数据中查找相同字符串的变体。这样,即使拼写错误,我也可以获得准确的拉取。脚本是这样的:

SELECT A.Name, A.ID
FROM A
LEFT JOIN B on B.ID = A.ID
WHERE B.type = 1
AND (
B.notes LIKE '%apple%'
OR B.notes LIKE '%aple%'
OR B.notes LIKE '%appl%'
)

因为表 A 中的单个条目可以链接到多个不同的笔记,这些笔记保存在表 B 中,如果一个人有一个包含“apple”的笔记和另一个包含“appl”的笔记,他们应该出现两次,这很好。运行此脚本后,我返回了 9627 行。

我尝试了相同的脚本,但将 WHERE 更改为:

WHERE B.type = 1
AND (B.notes LIKE '%apple%'
OR '%aple%'
OR '%appl%')

现在我有 9929 行。

这两个不同的 WHERE 子句的功能是否不同,因为我在第二个中省略了 B.notes?我正在处理大型数据集(A 有超过 20,000 个条目,B 有超过 160 万个条目),因此手动检查所有数据的完整性并不是特别实用。我对 SQL 还很陌生,所以我很感激任何关于为什么会发生这种情况以及如何获得准确结果的信息或建议。

最佳答案

我认为这是因为在一种情况下您在“aple”和“appl”之前都有一个 LIKE 关键字,但在另一种情况下您没有。

您可以尝试将它们添加到其中,或者您可以速记的一种方式是 AND B.notes IN ('apple', 'aple', 'appl')

关于mysql - 当我更改 WHERE 语句的格式时,为什么会得到不同数量的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32340633/

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