Проверьте, существует ли список идентификаторов в MySQL и PHP

Каков наиболее эффективный способ в MySQL и PHP проверить, существует ли список всех идентификаторов? Я хочу, чтобы возвращаемый результат функции был true если все идентификаторы существуют, иначе false .

Я думал:

  $ids = array(2233, 5545, 9478, 5343, 3545); do_all_groups_exist($ids); function do_all_groups_exist(array $ids = array()) { if(empty($ids)) { return true; } $SQL = "SELECT count(`id`) as count FROM groups WHERE `id` IN (" . implode(',', $ids) . ")"; ... $row = mysqli_fetch_object($result); return (intval($row->count) === count($ids)) ? true : false; } 

Есть ли способ лучше?

Вы можете получить результат в самой заявке sql

 $countids= count($ids); $sql= "SELECT CASE WHEN ( SELECT count(id) as cnt FROM groups WHERE id IN (" . implode(',', $ids) . ") )=$countids THEN 'true' ELSE 'false' END as result" ... $row=mysqli_fetch_array($result); echo $row['result']; 

Вы получите результат от имени coloumn 'result'

Он вернет true только тогда, когда все идентификаторы существуют в таблице.