我在两个字段中搜索任何相似的匹配时遇到一些问题。 例如,我有一个包含值的表:
CAR MAKE CAR MODEL
Ford Mustang (Shelby)
Toyota Corolla
Seat Leon
etc etc.
我希望能够通过搜索以下任意组合来获得结果“Ford, Mustang (Shelby)”:
福特
野马
谢尔比
福特野马
或任何其他组合。
这可能吗? 我进行了很好的搜索,但很难找到搜索词来描述我的意思。
将术语拆分为空格,然后为每个术语构建一点 SQL,如下所示:
car_make like '%x%' or car_model like '%x%'
然后用
or
连接所有这些以获得 WHERE 子句。因此,对于“Shelby Ford”,您最终会得到如下 SQL:
select stuff
from cars
where car_make like '%Shelby%'
or car_model like '%Shelby%'
or car_make like '%Ford%'
or car_model like '%Ford%'
如果您需要更复杂的内容,请研究 MySQL 的全文搜索功能。
尝试一下:
SELECT Car_Make, Car_Model, CONCAT_WS(' ', Car_Make, Car_Model) as Make_Model
FROM cars
WHERE CONCAT_WS(' ', Car_Make, Car_Model) LIKE '%Ford Mustang%'
不确定确切的语法,因为我不在家,但类似的东西应该可以工作。
在这种情况下,使用 LIKE '%Ford Mustang%' 和 LIKE 'Ford Mustang%' 有什么区别