【问题标题】:MySQL EXISTS return 1 or 0MySQL EXISTS 返回 1 或 0
【发布时间】:2012-11-01 13:38:14
【问题描述】:

对于我的选择查询,如何将 1 或 0 返回为真和假?我已经尝试了 fetch_assoc、数组等的所有组合。它通常返回为 null,这没有任何意义。

$querydetails = "select exists (select * from customer_det where id = $uid)";
$resultdetails = mysql_query($querydetails) or die(mysql_error());
while ($row = mysql_fetch_assoc($resultdetails)) {
    $resultdetails1 = $row[0];
}

这是我查询的最新版本。我猜它不是一个数组,但是如果没有要命名的行,我不确定如何提取值?

这是我之前帖子的一个帖子问题:MySQL Update WHERE

【问题讨论】:

  • 你应该切换到 mysqli,mysql 已被弃用。这意味着从现在开始不再支持它,存在更好的版本,如果您发布使用它的问题,这里的人们会生气。
  • 我很抱歉这是一个重复的问题,我没有看到发布的问题。尽管如此,我可以在将其插入 phpMyAdmin 的 SQL 查询时返回 1 或 0,但我无法让它与 PHP 一起返回
  • @asad 服务器上运行的php版本不支持mysqli。我意识到这是一个问题,但希望将来有人会更新它。

标签: php mysql select


【解决方案1】:
SELECT IF(EXISTS(...),1,0) AS result

【讨论】:

    【解决方案2】:

    简单使用COUNTIF

    SELECT IF(COUNT(*) = 0, 0, 1)
    FROM table1
    WHERE s = 2
    

    【讨论】:

    • EXISTS 可以不计其数地做到这一点。只需在子查询中使用 LIMIT 1 子句。
    【解决方案3】:
    SELECT count(*) FROM (
     SELECT id FROM table WHERE condition LIMIT 1
    ) AS result;
    

    【讨论】:

      【解决方案4】:

      我愿意:

      select * from customer_det where id = $uid LIMIT 1
      

      您将获得 1 行或 0 行。

      【讨论】:

      • 您将更有可能获得一行实际数据,或空集。
      猜你喜欢
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      • 2016-10-07
      • 1970-01-01
      • 2016-11-27
      • 2021-11-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多