Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.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
Php 在更新查询中设置WHERE before的可能方法?_Php_Mysql - Fatal编程技术网

Php 在更新查询中设置WHERE before的可能方法?

Php 在更新查询中设置WHERE before的可能方法?,php,mysql,Php,Mysql,我正在尝试执行此查询,但运气不佳 UPDATE paliaused WHERE brand=34 SET brand='audi' 我知道正确的做法(并且成功地做到了)是: 但是,我需要设置WHERE before,因为我是通过替换记事本文件中的字符来构造查询的 还有,有没有其他方法可以做到这一点 多谢各位 这是我课文的一部分 INSERT INTO models VALUES (978,'159'); INSERT INTO models VALUES (862,'156 S/W'); IN

我正在尝试执行此查询,但运气不佳

UPDATE paliaused WHERE brand=34 SET brand='audi'
我知道正确的做法(并且成功地做到了)是:

但是,我需要设置WHERE before,因为我是通过替换记事本文件中的字符来构造查询的

还有,有没有其他方法可以做到这一点

多谢各位

这是我课文的一部分

INSERT INTO models VALUES (978,'159');
INSERT INTO models VALUES (862,'156 S/W');
INSERT INTO models VALUES (979,'FIESTA');
INSERT INTO models VALUES (863,'156');
INSERT INTO models VALUES (980,'TERIOS');
INSERT INTO models VALUES (864,'A6');
我需要转换到哪里

UPDATE paliaused SET models='159' WHERE models='978' 

答案是:不,这不可能保留在SQL中,以下内容将在记事本++正则表达式查找/替换中工作(确保在查找对话框中选择了正则表达式):

查找:
插入模型值\([^,]+,([^)]+)\
替换为:
UPDATE paliaused SET models=$2,其中models='$1'

与:

结果将是:

UPDATE paliaused SET models='159' WHERE models='978'
UPDATE paliaused SET models='156 S/W' WHERE models='862'
UPDATE paliaused SET models='FIESTA' WHERE models='979'
UPDATE paliaused SET models='156' WHERE models='863'
UPDATE paliaused SET models='TERIOS' WHERE models='980'
UPDATE paliaused SET models='A6' WHERE models='864'
发生了什么事

正则表达式中的括号组成捕获组。然后,可以在记事本++的“替换为”字段中使用上面的“捕获组”,方法是使用$后跟该组的索引。

当然可以

$cond = 'WHERE brand=34';
"UPDATE paliaused SET brand='audi'".$cond;

您不能在
设置
之前设置
位置。当您发布您的方式或尝试过的代码时,我们可以为您提供另一种方式。显示您需要转换的记事本文本,如果您使用记事本+,则使用regex find/replace可以轻松地正确构造此文本。您可以编写自己的过程
myUpdate(oldbrand,newbrand)
哪一项可以更新paliaused SET brand=newbrand,其中brand=oldbrand
。我不知道这是否适用于你的情况。也许你可以用一个脚本来构建这些查询,从数据库表中取出数据(我想你需要它来导入只有id的品牌名称?),你可能认为MySQL可以处理任何顺序的短语,但显然它不能。那么,你从什么开始(这个“记事本文件”),你在更新什么样的信息,你是怎么做的?也许有比你现在做的更好的方法。你就是完美的!!
UPDATE paliaused SET models='159' WHERE models='978'
UPDATE paliaused SET models='156 S/W' WHERE models='862'
UPDATE paliaused SET models='FIESTA' WHERE models='979'
UPDATE paliaused SET models='156' WHERE models='863'
UPDATE paliaused SET models='TERIOS' WHERE models='980'
UPDATE paliaused SET models='A6' WHERE models='864'
$cond = 'WHERE brand=34';
"UPDATE paliaused SET brand='audi'".$cond;