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;