gpt4 book ai didi

MySQL 'AND' 子句没有正常运行

转载 作者:行者123 更新时间:2023-11-29 01:21:05 25 4
gpt4 key购买 nike

我正在尝试创建一个搜索引擎系统。在 MySQL 语句中,我连接了名字和姓氏,并试图让用户匹配他们的名字和姓氏中的关键字母。如果他们的account_type = 0account_ban = 0,它还会返回account_Type = 1account_ban = 1 的用户>。以下是我的查询:

SELECT 
firstname, lastname
FROM users
WHERE CONCAT(firstname,lastname) LIKE '%jb%'
OR CONCAT(firstname,lastname) LIKE '%bj%'
AND account_type = 0
AND account_ban = 0;

我这里有两个问题。第一个它返回具有 account_type = 1account_ban = 1 的用户,第二个问题是如果我在名称中插入一个空格,例如%j b%%b j%,它不会返回任何东西。请帮忙。

最佳答案

目前还不清楚您真正想要的空间是什么,但这里有一个解决方案:

SELECT firstname, lastname
FROM users
WHERE (CONCAT(firstname, lastname) LIKE '%j%b%' OR
CONCAT(firstname, lastname) LIKE '%b%j%'
) AND
account_type = 0 AND account_ban = 0;

这将匹配“b”和“j”之间的任何字符,包括无字符和空格。您可以用 '_' 恰好匹配一个字符,但这似乎不是您想要的。这应该可以解决问题:

WHERE (REPLACE(CONCAT(firstname, lastname), ' ', '') LIKE '%j%b%' OR
REPLACE(CONCAT(firstname, lastname), ' ', '') LIKE '%b%j%'
) AND
account_type = 0 AND account_ban = 0;

关于MySQL 'AND' 子句没有正常运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28265045/

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