我有一个情况:
我有一个数据库(MySQL),其中包含这样的产品及其代码
BLACK SUGAR BS 709
HOT SAUCE AX889/9
TOMY 8861
我收到了一个 Excel 电子表格,已将其转换为 CSV,其中包含产品的价格。它的结构由两列组成,代码和价格,如下所示:
BS709 23.00
AX 889 /9 10.89
8861 1.69
我编写了一个脚本,通过使用 FOREACH 和 %LIKE% 查询在数据库中搜索相应的产品代码来更新产品价格。
FOREACH CSV 中的行,使用“WHERE Product_code LIKE %code%”搜索数据库。
这当然是一种原始且不太成功的更新价格的方法,因为 CSV 中的代码与数据库中的代码不完全匹配(在语法上),所以如果我在数据库中有两个包含 BS709 (BS70923 )在他们的代码中我得到了多个匹配。
有更好的方法吗?
最佳答案
您可以使用 MySQL 修剪空格和其他字符的列 replace()
在比较之前。这将返回所有完全匹配的内容,无论是否包含任何空格。
SELECT * FROM table WHERE REPLACE(product_code, ' ', '' ) LIKE 'code'
关于mysql - 在数据库中查找尽可能接近的精确匹配 - 哪种方式更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19670901/