gpt4 book ai didi

php - 向 MySQL 查询添加附加条件会导致空响应

转载 作者:行者123 更新时间:2023-11-29 06:28:46 25 4
gpt4 key购买 nike

我在使用 MySQL 查询时遇到问题。我应该使用年龄上限和下限按年龄选择成员。例如这个查询返回一些结果

SELECT DISTINCT users.* 
FROM wp_users as users
INNER JOIN wp_usermeta as mt
ON (users.ID = mt.user_id)
WHERE 1=1
AND (
(mt.meta_key LIKE 'user_birthday' AND mt.meta_value <> '' AND mt.meta_value <= 1985)
AND (mt.meta_key LIKE 'user_birthday' AND mt.meta_value <> '' AND mt.meta_value >= 1920)
)
AND users.ID NOT IN (1,2,3)
ORDER BY users.user_registered desc

此查询返回大约 70 个结果。但是当我像这样向这个查询中添加 First name 搜索时:

SELECT DISTINCT users.* 
FROM wp_users as users
INNER JOIN wp_usermeta as mt ON (users.ID = mt.user_id)
WHERE 1=1
AND (
(mt.meta_key = '_upme_search_cache' AND mt.meta_value LIKE '%first_name::John%')
AND (mt.meta_key LIKE 'user_birthday' AND mt.meta_value <> '' AND mt.meta_value <= 1985)
AND (mt.meta_key LIKE 'user_birthday' AND mt.meta_value <> '' AND mt.meta_value >= 1920)
)
AND users.ID NOT IN (1,2,3)
ORDER BY users.user_registered desc

这将返回 0 个结果,但我知道我在数据库中有 2 个约翰。

SELECT DISTINCT users.* 
FROM wp_users as users
INNER JOIN wp_usermeta as mt ON (users.ID = mt.user_id)
WHERE 1=1 AND (
(mt.meta_key = '_upme_search_cache' AND mt.meta_value LIKE '%first_name::John%')
) AND users.ID NOT IN (1,2,3)
ORDER BY users.user_registered desc

这个返回 2 条记录。

这里肯定没有语法错误,但我想我的逻辑哪里不对?

我应该提一下,这是安装了 UPME 插件的 WordPress 数据库。

我是不是在连接表格或其他方面出错了?

最佳答案

问题是您正在查询不在同一行中的数据(meta_key 列的不同值)。您需要另一个 JOIN 到 wp_usermeta 表,或一些子查询。您可以使用此 fiddle 作为要点的说明 http://sqlfiddle.com/#!9/48836/2

关于php - 向 MySQL 查询添加附加条件会导致空响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29277264/

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