Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用带有指定值的MySQL的IN子句_Mysql - Fatal编程技术网

使用带有指定值的MySQL的IN子句

使用带有指定值的MySQL的IN子句,mysql,Mysql,我正在尝试编写一个查询,如果某列在我提供的列表中具有值,则该查询将更新表中的行: UPDATE MY_TABLE SET COL1 = 'xyz' WHERE COL2 IN ('x', 'y', 'z'); 我得到一个语法错误,但我知道这应该是可能的。它本质上是执行以下3个命令的单个命令: UPDATE MY_TABLE SET COL1 = 'xyz' WHERE COL2 = 'x'; UPDATE MY_TABLE SET COL1 = 'xyz' WHERE COL2 = 'y';

我正在尝试编写一个查询,如果某列在我提供的列表中具有值,则该查询将更新表中的行:

UPDATE MY_TABLE SET COL1 = 'xyz' WHERE COL2 IN ('x', 'y', 'z');
我得到一个语法错误,但我知道这应该是可能的。它本质上是执行以下3个命令的单个命令:

UPDATE MY_TABLE SET COL1 = 'xyz' WHERE COL2 = 'x';
UPDATE MY_TABLE SET COL1 = 'xyz' WHERE COL2 = 'y';
UPDATE MY_TABLE SET COL1 = 'xyz' WHERE COL2 = 'z';
值xyz是由用户动态设置的,可能有任意数量的值(或者我只需要用冗长而糟糕的方式编写代码并使用它。在IN子句中我能找到的唯一信息与子查询有关。有人能帮我重写此查询吗


非常感谢。

这是您的完整更新查询吗?它似乎缺少结尾部分。缺少位后,它看起来很好。您可以发送收到的实际错误消息吗?

我很确定您不需要引用单个值

UPDATE MY_TABLE SET COL1 = 'xyz' WHERE COL2 IN ('x, y, z');
我也总是这样

如果值是数值,则根本不需要引号。

您应该发布准确的错误消息。错误消息将提供有关查询的哪一部分使解析器困惑的线索

某些值x、y、z是否包含引号作为值的一部分?可能有不平衡的引号。例如,以下明显是语法错误:

UPDATE MY_TABLE SET COL1 = 'xyz' WHERE COL2 IN ('O'Reilly', 'Smith', 'Jones');

提供更多信息,我将编辑此答案,并提供更多疑难解答建议。

因此,现在每个人都告诉我要查找不平衡的报价,我更仔细地查看了查询,并发现以下内容:

UPDATE BOOK SET INVOICE_ID TO '1' WHERE START_NUMBER IN (1)
应该是:

UPDATE BOOK SET INVOICE_ID = '1' WHERE START_NUMBER IN (1)

谢谢你的帮助,但是现在我感觉很好,很笨。

看起来像是iPhone的渲染问题。稍后将在实际计算机上进行检查!是的,这是完整的查询,我不确定缺少什么。我想你确实需要单独的引号。我尝试了带引号和不带引号,但仍然不起作用。虽然列是数字的,但据我所知知道引号没有坏处。等等……如果列是数字的,你不能与文本x,y z进行比较,只能与数字1,2 3等进行比较。x,y,z'是单个字符串值。这在语法上是正确的,但可能不是OP想要的。如果你想与三个单独的字符串进行比较,你必须分别引用它们。是的,我的错。我没有我不想使用字母文字,但如果实际数据是数字(与提供的示例相反),则可以使用不带引号的数字。另外:你完全需要引用字符串文字。我需要更多的咖啡:我很好奇这个例子是否也不能满足这些精确的值,因为它看起来很好。像你在这里建议的一个例子(O'Reilly没有正确转义)是我能想到的唯一一件事。没有额外的引号…我检查了查询,它们都是平衡的。所有值都是数字,因此没有内部引号可以忽略。