当前位置: 首页 > 面试题库 >

MySQL“ IF EXISTS”的用法

隆功
2023-03-14
问题内容

这是我要使用的两条语句,但是它们返回错误消息:

IF EXISTS (SELECT * FROM gdata_calendars WHERE `group` =  ? AND id = ?) SELECT 1 ELSE SELECT 0

IF ((SELECT COUNT(*) FROM gdata_calendars WHERE `group` =  ? AND id = ?) > 0)  SELECT 1 ELSE SELECT 0;

之所以会有问号,是因为我在PHP的PDO中使用了参数化的,准备好的语句。但是,我也尝试过手动使用数据执行此操作,但这确实不起作用。

虽然我想知道为什么每个都不起作用,但如果可以使第一个查询起作用,我希望使用第一个查询。


问题答案:

您不能使用功能的IF控制块OUTSIDE。这样会影响您的两个查询。

将EXISTS子句改为IF函数中的子查询

SELECT IF( EXISTS(
             SELECT *
             FROM gdata_calendars
             WHERE `group` =  ? AND id = ?), 1, 0)

实际上,布尔值返回为1或0

SELECT EXISTS(
         SELECT *
         FROM gdata_calendars
         WHERE `group` =  ? AND id = ?)


 类似资料:
  • 问题内容: 我正在使用ElasticSearch作为网站的搜索组件。被索引并最终被搜索的数据与保存在MySQL DB中的数据相同。 我的解决方法是在发生相应的CRUD MySQL操作时在索引中添加/删除/修改数据。 例如,创建操作如下所示: 如果数据是在MySQL中删除/更新的,那么我将其删除或从索引中更新。 这是将MySQL与ElasticSearch(或其他任何类似的技术,例如Sphinx)结

  • 我在打开h2数据库控制台后得到错误。我输入数据库名称,但它显示数据库未找到错误: 没有找到数据库“C://users/barlekar/onlineshoppings”,并且Ifexists=true,所以我们不能自动创建它[90146-199]90146/90146(帮助)

  • 数据库定义语言 DDL 用于定义和管理数据对象(库 表 索引 视图),包括数据库、表等。如 CREATE DROP ALTER等。 数据库操作语言 DML 用语操作数据库对象中所包含的数据。例如 INSERT UPDATE DELETE语句。 数据库查询语言 DQL 用户查询数据库对象中所包含的数据,能够进行单表查询、连接查询、嵌套查询,以及集合查询等各种复杂程度不同的数据库查询,并将数据返回到客

  • 本文向大家介绍详解MySQL中UNION的用法,包括了详解MySQL中UNION的用法的使用技巧和注意事项,需要的朋友参考一下 如果想选择其他几个表中的行或从一个单一的表作为一个单独的结果集行的几个集会,那么可以使用的UNION。 UNION在MySQL4.0以上版本才能可以使用。本节说明如何使用它。 假设有两个表,潜在和实际的客户列表,供应商购买耗材合并所有三个表中的姓名和地址,来创建一个单一的

  • 本文向大家介绍浅析MySQL replace into 的用法,包括了浅析MySQL replace into 的用法的使用技巧和注意事项,需要的朋友参考一下 在 SQL Server 中可以这样处理: 那么 MySQL 中如何实现这样的逻辑呢?别着急!MySQL 中有更简单的方法: replace into replace into 跟 insert 功能类似,不同点在于:replace int

  • 主要内容:1. 定义变量,2. 为变量赋值在 MySQL 中,除了支持标准的存储过程和函数外,还引入了表达式。表达式与其它高级语言的表达式一样,由变量、运算符和流程控制来构成。 变量是表达式语句中最基本的元素,可以用来临时存储数据。在存储过程和函数中都可以定义和使用变量。用户可以使用 DECLARE 关键字来定义变量,定义后可以为变量赋值。这些变量的作用范围是 BEGIN...END 程序段中。 下面将讲解如何定义变量和为变量赋值。 1.