2012-01-05 13 views
0

私はmysqlのURLを比較しようとしていますが、クエリはすべてのURLに一致する結果を返します。mysqlの文字列を比較する

ここは私の質問です。

SELECT 
    a.comment_ID, 
    a.comment_post_ID, 
    a.comment_content, 
    a.comment_date_gmt, 
    a.comment_author_url, 
    b.post_title, b.ID 
FROM 
    `wp_comments` a, 
    `wp_posts` b 
WHERE 
    a.comment_post_ID = b.ID 
    AND 
    ('a.comment_author_email' = '$email' 
    OR 
    'a.comment_author_url' = '$url') 
    AND a.comment_approved = 1 
GROUP BY a.comment_ID 
ORDER BY a.comment_ID DESC 

ありがとうございます!

編集:クエリでfull query

+0

これは、どちらかのためにtrueを返します。この状態 ** AND( 'a.comment_author_email' = '$メール' OR 'a.comment_author_url' = '$のURL')** の見直しを検討著者の電子メールまたは提供されたURL。あなたはどんな価値観を持っていますか? – dkulkarni

+0

可能であれば、変数ではなく値でこのクエリを送信してください。助けが簡単になります=) – Gerep

+0

ここはほぼ完全なコードです... http://pastebin.com/QJmPfd0e –

答えて

2

、あなたが`(バッククォート)文字ですべて'(単一引用符)文字を置き換えることを確認してください。

0

ヒント:

  • がテーブルの周り'
  • PHP変数の周りのライトバッククォート `を削除する属性の代わりに
  • INNER JOINの使用でも
事が容易になります

TRYこの

$qry = " SELECT { watever} FROM `wp_comments` a, 
     INNER JOIN `wp_posts` b ON `a`.`comment_post_ID` = `b`.`ID` 
     WHERE 
       `a`.`comment_author_email` = '".$email."' 
      OR `a`.`comment_author_url` ='". $url."'  
     GROUP BY `a`.`comment_ID` 
     ORDER BY `a`.`comment_ID` DESC "; 
+0

同じ結果です。 comment_author_urlにURLがある行を返すだけです:/ –