簡體   English   中英

檢查MySQL和PHP中是否存在id列表

[英]Check if a list of ids all exist in MySQL and PHP

MySQLPHP中檢查是否所有id列表都是最有效的方法是什么? 如果所有 id都存在,我希望函數返回結果為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'獲得結果

只有當表中存在所有ID時,它才會返回true。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM