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