我在mysql表中有一个项目列表(Brand + productModel),我在另一个表中有一个Brands列表.
例:
table_items
|id| name | brand_id |
-----------------------------------
| 1| Apple Mac 15 |
| 2| Dell Laptop NXY |
| 3| HP Tablet 15 |
| 4| Apple Laptop AA |
| 5| Dell Tablet VV |
| 6| HP Desktop XYZ |
Run Code Online (Sandbox Code Playgroud)
table_brands
|id| name |
------------
| 1| Apple |
| 2| Dell |
| 3| HP |
Run Code Online (Sandbox Code Playgroud)
我继承table_items了之前的项目,所以我需要检测品牌名称table_items,如果品牌存在,那么将品牌ID添加到商品列brand_id(当前为空)
所以理想的输出就是
|id| name | brand_id |
-----------------------------------
| 1| Apple Mac 15 | 1
| 2| Dell Laptop NXY | 2
| 3| Dell Tablet 15 | 2
| 4| Apple Laptop AA | 1
| 5| HP Tablet VV | 3
| 6| HP Desktop XYZ | 3
Run Code Online (Sandbox Code Playgroud)
所以我不知道我是否应该使用PHP或者可以直接在MySQL中完成...如果PHP如何检测匹配的字符串?
您可以使用like加入两个表,并根据需要进行更新.
UPDATE `table_items` TI
INNER JOIN table_brands TB
ON TI.name LIKE CONCAT(TB.name, '%')
SET TI.brand_id = TB.id
Run Code Online (Sandbox Code Playgroud)
注意:INNER JOIN只会更新匹配的字段.
小智 1
you can use the query in mysql like
SELECT id FROM TABLE_BRANDS WHERE name like "Dell%";
Run Code Online (Sandbox Code Playgroud)