我有一個情況:查找與數據庫中完全匹配的結果 - 哪種方式更好?
我有一個數據庫(MySQL的),其中包含產品及其代碼這樣
BLACK SUGAR BS 709
HOT SAUCE AX889/9
TOMY 8861
我有一個Excel電子表格,我轉換成CSV,這包含了產品價格。其結構由2列,代碼和價格,這樣的:
BS709 23.00
AX 889 /9 10.89
8861 1.69
我做了一個腳本,通過搜索數據庫中相應的商品條碼,使用LIKE%的查詢一個foreach和%以更新產品的價格。在CSV
FOREACH行,使用「WHERE PRODUCT_CODE LIKE%代碼%搜索數據庫。
這是offcourse更新價格的原始和不那麼succesfull方式,因爲在CSV代碼是不完全匹配(語法)與數據庫中的,所以如果我有兩個產品在DB在其代碼中包含BS709(BS70923)我得到多個匹配。
是否有這樣做的更好的辦法?
第一步是數據庫不可知的。你必須定義一個匹配算法。問問自己正確的問題(例如,BS 709是否必須符合BS709?)。然後你可以看看mysql的FULLTEXT搜索方法('MATCH'等) – Sebas
請記住,MySQL不區分大小寫,可能是你的情況中的祝福或詛咒。 –
我會考慮FULLTEXT –