这个SQL查询有什么问题?

时间:2010-02-14 22:53:01

标签: sql mysql

这个sql查询有什么问题。我想不出来。

    $query = "SELECT *
    FROM tagPairs
    WHERE (tag1Id IN ($tag1Id, $tag2Id))
    AND (tag2Id IN ($tag1Id, $tag2Id))";

错误代码:

无法执行查询:您的SQL语法中有错误;检查与您的MySQL服务器版本对应的手册,以便在')附近使用正确的语法         AND(tag2Id IN(,))'在第3行

提前感谢!

3 个答案:

答案 0 :(得分:4)

$tag1Id$tag2Id都是空字符串或空字符串。最简单的解决方案可能是明确地将它们转换为数值:

$tag1Id = intval($tag1Id);
$tag2Id = intval($tag2Id);
$query = "SELECT *
    FROM tagPairs
    WHERE (tag1Id IN ($tag1Id, $tag2Id))
    AND (tag2Id IN ($tag1Id, $tag2Id))";

答案 1 :(得分:3)

$tag1Id$tag2Id为空。

这就是为什么您的错误显示(tag2Id IN (, ))

答案 2 :(得分:1)

您的$tag1Id$tag2Id是空字符串。为它们分配一个值,它应该可以正常工作。

另外,选择*是一个坏主意。选择您需要明确的列。