Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.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更新值,如果条件为_Mysql_Csv - Fatal编程技术网

MySQL更新值,如果条件为

MySQL更新值,如果条件为,mysql,csv,Mysql,Csv,是否可以根据条件更新值 例如: 数据库一 我有一个列表:数据库更新 PN Model x1234 9012 x2345 8901 x3456 7890 x4567 6789 x5678 5678 x6789 4567 x7890 3456 x8901 2345 x9012 1234 在本例中,我想导入第二个列表,以便它将相应的“Model”写入“PN”(如果存在) 最后应该是这样的: 数据库一 如果列表是表,则可以使用联接执行更新: UPDATE

是否可以根据条件更新值

例如: 数据库一

我有一个列表:数据库更新

PN      Model
x1234   9012
x2345   8901
x3456   7890
x4567   6789
x5678   5678
x6789   4567
x7890   3456
x8901   2345
x9012   1234
在本例中,我想导入第二个列表,以便它将相应的“Model”写入“PN”(如果存在) 最后应该是这样的: 数据库一


如果列表是表,则可以使用联接执行更新:

UPDATE
  yourtable t JOIN list l
  ON t.PN = l.PN
SET
  t.model = l.model
如果列表不是表,则可以执行多个查询:

UPDATE yourtable SET model='1234' WHERE PN='x9012'
...
或者你可以用这个:

UPDATE
  yourtable t JOIN (
    SELECT 'x1234' PN, '9012' Model UNION ALL
    SELECT 'x2345' PN, '8901' Model UNION ALL
    ..etc...
  ) l
  ON t.PN = l.PN
SET
  t.model = l.model

update table t set t.model=csv.model其中t.pn=csv.pn和csv.model''
一句忠告,不要像在最底层那样询问工具建议。它很快就变成了一个封闭的问题,用于提供意见建议、主题外资源或工具关闭原因。查看csv的
LOAD DATA infle
,或通过phpmyadmin导入。我喜欢“第一个制作列表一个表”的想法问:如果在我的表PN中有多个字符串,如:“x1234、x2345、x3456”,是否可以在字符串中的示例“x1234”中只找到部分字符串,并在“model”列中写入“model”?可能类似于在t.PN上更新您的表t联接列表l,例如l.
%PN%
设置t.model=l。model@finua如果值是逗号分隔的值列表,则可以使用FIND_IN_SET:
更新您的表t JOIN list l ON FIND_IN_SET(t.PN,l.PN)>0 SET…
@fthiella,如果字符串由其他内容分隔,该怎么办?在我的示例中是“x1234/x2345/x3456”
UPDATE yourtable SET model='1234' WHERE PN='x9012'
...
UPDATE
  yourtable t JOIN (
    SELECT 'x1234' PN, '9012' Model UNION ALL
    SELECT 'x2345' PN, '8901' Model UNION ALL
    ..etc...
  ) l
  ON t.PN = l.PN
SET
  t.model = l.model