0

値のリストがあり、MySQL に値が存在するかどうかを 1 つのステートメントで確認したいと考えています。

$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 つ存在する場合は 1 をエコーすることですが、グループに値が 1 つしか存在しない場合でもステートメントを否定したくありませんが、他の値は存在しません。

これは可能ですか?

4

2 に答える 2

0

上記の質問に基づいて、私のスクリプトは機能します。ただし、存在する数をカウントします。存在しない場合は、Madan Sapkota が提案したようにチェックします。

于 2013-02-24T04:15:28.980 に答える
0

これを試して:

"SELECT count(*) total, * FROM tags WHERE tag IN ($qMarks) GROUP by tag HAVING total > 0"
于 2013-02-24T03:46:32.360 に答える