Php wordpress选择查询不工作

Php wordpress选择查询不工作,php,mysql,wordpress,phpmyadmin,Php,Mysql,Wordpress,Phpmyadmin,我正在为wordpress的select查询苦苦挣扎,但它不起作用。奇怪的是,我有两个选择查询,一个是在当前运行的网站上,可以正常工作。和本地测试机上的一个几乎相似的select查询不起作用 以下是正在运行的live的查询: SELECT DISTINCT users.* FROM wp_users as users INNER JOIN wp_usermeta as mt ON (users.ID = mt.user_id) WHERE 1=1

我正在为wordpress的select查询苦苦挣扎,但它不起作用。奇怪的是,我有两个选择查询,一个是在当前运行的网站上,可以正常工作。和本地测试机上的一个几乎相似的select查询不起作用

以下是正在运行的live的查询:

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_value LIKE '%Trainer%') 
        AND (mt.meta_key = '_upme_search_cache' AND mt.meta_value LIKE '%ACTIVE%') 
        AND (   (mt.meta_key = '_upme_search_cache' AND mt.meta_value NOT LIKE '%administrator%') 
            AND (mt.meta_key = '_upme_search_cache' AND mt.meta_value NOT LIKE '%sportentrainer%') ) 
    ORDER BY users.user_registered asc LIMIT 9 
这里是来自本地机器的查询:

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_value LIKE '%trainer%') 
        AND (mt.meta_key = 'sent_activation_status' AND mt.meta_value LIKE '%ACTIVE%') 
        AND (  (mt.meta_key = 'account_type' AND mt.meta_value NOT LIKE '%administrator%') 
            OR (mt.meta_key = 'account_type' AND mt.meta_value NOT LIKE '%sportentrainer%') ) 
    ORDER BY users.user_registered asc LIMIT 9 
第二个查询上的meta_键都是在单独搜索时找到的。您注意到meta_键是不同的,但这不是问题所在

第一个查询在phpmyadmin:4.1.9和mysql:5.0.12的实时版本上运行(如果我没有记错的话),第二个查询在phpmyadmin:4.6.6和mysql:5.6.35的本地版本上运行


有人知道为什么第二个查询不起作用吗?

由于以下情况,它将不会返回任何结果:

AND (mt.meta_key = 'sent_activation_status' AND mt.meta_value LIKE '%ACTIVE%') 
AND ((mt.meta_key = 'account_type' AND mt.meta_value NOT LIKE '%administrator%') 
            OR (mt.meta_key = 'account_type' AND mt.meta_value NOT LIKE '%sportentrainer%'))
如果您查看上面的条件,它会显示
mt.meta\u key='sent\u activation\u status'和mt.meta\u key='account\u type'
,现在,这是不可能的,因为
meta\u key
不能同时是
sent\u activation\u status
account\u type


如果要获得结果,需要使用
而不是

不工作,这是否意味着查询不会返回您希望的结果?如果是这样,那么最好的办法可能是通过简化查询进行调试。从一个
/
条件开始,运行查询,检查是否在该点之前获得数据,添加更多条件,再次验证结果,并继续进行,直到发现断开连接。也许表中没有任何东西符合你的期望?或者,如果有,那么可能条件没有准确地表述出来?MySQL版本不应该对这个查询有任何影响。如果不起作用,我的意思是它返回0个结果。当我只使用1时,它会返回结果。奇怪的是,第一个查询返回结果,但是仅仅修改meta_键返回0个结果,但是当我在phpmyadmin中搜索那些meta_键和特定值时,它也返回结果。所以meta_键就在那里。嗨,Darshan,谢谢你的回复,结果仍然相同,返回0。我尝试了以下SQL:
选择不同的用户。*从wp_用户作为用户内部加入wp_usermeta作为mt ON(users.ID=mt.user_ID),其中1=1和(mt.meta_值像“%trainer%”)和(mt.meta_键='sent_activation_status'和mt.meta_值,如'%ACTIVE%')
不起作用,但仅在运行时:
选择不同的用户。*从wp_用户作为用户内部加入wp_usermeta作为mt ON(users.ID=mt.user_ID),其中1=1和(mt.meta值,如'%trainer%'))
它可以工作。我很困惑。谢谢,你是对的。我必须更改值的存储方式。再次感谢。