OrderNumber SKU IsFBA Description
123456 RED5 Product Payment
123456 RED5 commission
123456 RED5 FBA Fees
234567 RED5 Product Payment
234567 RED5 commission
345678 RED5 Product Payment
345678 RED5 commission
我想创建一个更新 IsFBA = yes 的 SQL 语句 在具有相同 orderNumber 的任何行的所有 OrderNumber 中,其中描述如“%FBA%”
换句话说: 第 3 行“描述”包含“FBA”(如“%FBA%”)。我希望在与此行具有相同 OrderNumber 的所有其他行中将“IsFBA”更新为 yes。
所以我的结果是:
OrderNumber SKU IsFBA Description
123456 RED5 yes Product Payment
123456 RED5 yes commission
123456 RED5 yes FBA Fees
234567 RED5 Product Payment
234567 RED5 commission
345678 RED5 Product Payment
345678 RED5 commission
我可以使用 PHP 循环数据库轻松地完成此操作,但想知道是否有一个 mySQL 语句可以执行相同的操作。
最佳答案
这应该可行,但尚未测试。
UPDATE MyTable m1
INNER JOIN (
SELECT OrderNumber
FROM MyTable
WHERE Description LIKE '%FBA%'
GROUP BY OrderNumber
) m2 ON m1.OrderNumber = m2.OrderNumber
SET IsFBA = 'yes'
它比使用 IN
稍好一些。
关于如果任何行中的第三个字段包含值,MYSQL 会更新与第二个字段匹配的所有行中的一个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26683506/