这是我的查询
SELECT * FROM wp_postmeta WHERE meta_value LIKE '".$_POST['username']."' AND meta_value LIKE '".$_POST['password']."'
问题是meta_value用户名和meta_value密码分为2个不同的行。我需要进行查询以查找两者并告诉我,我寻找的变量是否在这些行中。所以我希望结果以简单的
返回1mysql_num_rows();
我知道这很愚蠢,应该在不同列的相同行上,但我需要使用那些愚蠢的wordpress插件,他们就像它想要的那样。
答案 0 :(得分:1)
您可以将HAVING
子句与GROUP BY
结合使用,以检索满足多行而不是列的所有条件的行:
SELECT
*
FROM
wp_postmeta
WHERE
meta_value IN ('$filtered_username','$filtered_password')
GROUP BY
meta_id
HAVING
COUNT(*) = 2
不要直接在查询中插入$ _POST值,这是对SQL注入攻击的公开调用。因为您使用的是已弃用的mysql_*
函数:至少可以通过mysql_real_escape_string()
运行$ _POST变量。但最好使用PDO及其对prepared statements的支持。