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

MySQL变量格式,用于“ NOT IN”值列表

公冶森
2023-03-14
问题内容

疯狂尝试在类型查询中设置变量:

SET @idcamposexcluidos='817,803,495';

这样我就可以在

WHERE id_campo not in (@idcamposexcluidos)

我尝试过用不同的格式定义变量,但是没有运气,似乎也找不到上述的特定示例:

SET @idcamposexcluidos='(817,803,495)';
...
WHERE id_campo not in @idcamposexcluidos


SET @idcamposexcluidos=817,803,495;

没有成功。它要么返回错误,要么忽略值。


问题答案:

您不能使用这样的IN子句。它在您的子句中编译为 单个 字符串IN。但是IN子句需要 单独的 值。

WHERE id_campo not in (@idcamposexcluidos)

编译为

WHERE id_campo not in ('817,803,495')

但应该是

WHERE id_campo not in ('817','803','495')

为了克服这个问题,可以使用动态SQL或在MySQL中使用FIND_IN_SET:

SET @idcamposexcluidos='817,803,495';
...
WHERE FIND_IN_SET(id_campo, @idcamposexcluidos) = 0

但是使用像这样的函数FIND_IN_SET()不能使用索引。



 类似资料:
  • 建议使用Python记录变量的方法是什么?为什么更好? 旧式插值: 或 新样式<代码>。format() 我听说插值是首选,因为它只在字符串要打印时才计算字符串,但我还没有验证它是否真的重要。

  • 问题内容: 我在MySQL中有一张表。我想将表的列值设置为常量整数。我怎样才能做到这一点? 问题答案: 不幸的是,MySQL不支持SQL检查约束。您可以出于兼容性原因在DDL查询中定义它们,但是它们只会被忽略。您可以创建BEFORE INSERT和BEFORE UPDATE触发器,这些触发器会导致错误或在不满足数据要求时将字段设置为其默认值。 因此,您可以在其中找到解决方法。 样品表: 扳机: 测

  • 我有一张带有以下原型的桌子: 我想创建一个过程来插入具有特定长度的随机字符串,我写了以下内容: 这样说: 问题是它插入NULL作为NAME字段。 我的怀疑是,当同时循环终止时,对所做的更改超出了范围。 我还尝试使用如下的全局变量: 也在程序之外声明了,但没有发生什么特别的事情 感谢您的帮助<向你问好。

  • 我已经定义了变量$row_id1(例如$row_id1=1;) mysql中有一列名为Number。 要选择列号,如果列中存在$row_id,则要获取(获取、定义)值。实际上要检查列中的编号是否存在$row\U id值。 代码有什么问题? 在输出中,我得到数组$Number1 似乎简单(愚蠢)的问题,但寻找了几个小时,没有解决办法 更新代码 本部分与问题无关(仅供参考) 这与问题有关(这里我从输入

  • 问题内容: 有没有一种方法可以在变量中传递值列表,并在IN()语句中使用它来对照传入的值列表检查字段? 我唯一能想到的就是这样: 谢谢。 问题答案: TD14支持名为STRTOK_SPLIT_TO_TABLE的漂亮表函数:

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