gpt4 book ai didi

MySQL name LIKE '%#attributes.q#%' --- 不返回完全匹配的结果?

转载 作者:行者123 更新时间:2023-11-29 09:19:49 25 4
gpt4 key购买 nike

我有以下 MySQL 查询:

SELECT  *
FROM customer
WHERE
fName LIKE '%#attributes.q#%' AND deleted = 'N'
OR
lName LIKE '%#attributes.q#%' AND deleted = 'N'

这对于猜测来说效果很好,但是如果您为上面的查询提供完全匹配:“Bill Clinton” fname=bill lname = clinton,您会得到 0 个结果吗? Bill Clint 给出了结果。

如何更新此查询以查找 LIKE 结果和 EQUAL TO 结果?

最佳答案

很难从你的问题中看出,但我猜你的客户表看起来像这样:

id    fName    lName      deleted
---------------------------------
1 John Doe N
2 Bill Clinton N
3 Fred Smith N
4 George Bush Y

正如您在问题中所述,您的查询永远不会起作用,因为它看起来像这样:

SELECT *
FROM customer
WHERE fname LIKE '%Bill Clinton%' AND deleted = 'N'
OR
lName LIKE '%Bill Clinton%' AND deleted = 'N'

表中没有 fName OR lName 字段包含“Bill Clinton”的记录

您必须修改 #attributes.q# 文本,以便它生成如下内容:

SELECT *
FROM customer
WHERE ((fName LIKE '%Bill%') OR (fName LIKE '%Clinton%')) AND deleted = 'N'
OR
((lName LIKE '%Bill%') etc.....

LIKE 比较非常类似于在文件名中使用通配符。它们不会为您分割文本 block ,但会逐字地告诉您另一 block 文本中是否存在一 block 文本。

我认为你需要的是 FULLTEXT search ,它将考虑查询字符串中的各个单词并返回结果。当然,FULLTEXT 仅适用于 MyISAM 表类型,因此如果您使用 InnoDB 或其他某种类型,那么您就不走运了。

关于MySQL name LIKE '%#attributes.q#%' --- 不返回完全匹配的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2441347/

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