使用一个语句检查值是否存在

时间:2013-02-24 03:09:03

标签: php mysql pdo prepared-statement

我有一个值列表,我想用一个语句检查MySQL中是否存在任何值。

$tags = "VALUE-IN-MySQL,DOESNT-EXIST1,DOESNT-EXIST2";

$tagArray = explode(",", $tags);
$qMarks = str_repeat('?,', count($tagArray) - 1) . '?';

$tagsCheck = $dbh->prepare("SELECT * FROM tags WHERE tag IN ($qMarks)");
$tagsCheck -> execute($tagArray);
echo $tagsCheck -> rowCount();

这个问题是如果语句中至少存在一个则回显为1,但即使组中只存在一个值,我也不会否认该语句,但其他人则不然。

这可能吗?

2 个答案:

答案 0 :(得分:0)

试试这个:

"SELECT count(*) total, * FROM tags WHERE tag IN ($qMarks) GROUP by tag HAVING total > 0"

答案 1 :(得分:0)

基于上述问题,我的脚本确实有效。然而,它计算存在多少,如果不存在,那么我会做,如果其他检查像Madan Sapkota建议。