我在两个字段中搜索任何类似的匹配时遇到了一些麻烦。 例如,我有一个包含值的表:
CAR MAKE CAR MODEL
Ford Mustang (Shelby)
Toyota Corolla
Seat Leon
etc etc.
我希望能够通过搜索以下任何组合来获得结果“Ford,Mustang(Shelby)”:
Ford Mustang
或任何其他组合。
这可能吗? 我有一个很好的搜索,但很难找到描述我的意思的搜索词。
答案 0 :(得分:7)
在空格上拆分你的术语然后,对于每个术语,构建一些像这样的SQL:
car_make like '%x%' or car_model like '%x%'
然后加入所有or
来获取WHERE子句。所以对于“谢尔比福特”来说,你最终会得到这样的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的full-text search功能。
答案 1 :(得分:2)
尝试一下:
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%'
不确定确切的语法,因为我不在家,但类似的东西应该有用。