我在搜索两个字段中的任何类似匹配时遇到了一些麻烦。 比如我有值的表:在MYSQL中有多个字段和空格的通配符
CAR MAKE CAR MODEL
Ford Mustang (Shelby)
Toyota Corolla
Seat Leon
etc etc.
我希望能够通过搜索以下任一组合,以获得结果“福特野马(谢尔比)”:
- 福特
- 野马
- 谢尔比
福特野马
或任何其他组合。
这可能吗? 我有一个很好的搜索,但很难找到搜索条件来描述我的意思。
我在搜索两个字段中的任何类似匹配时遇到了一些麻烦。 比如我有值的表:在MYSQL中有多个字段和空格的通配符
CAR MAKE CAR MODEL
Ford Mustang (Shelby)
Toyota Corolla
Seat Leon
etc etc.
我希望能够通过搜索以下任一组合,以获得结果“福特野马(谢尔比)”:
福特野马
或任何其他组合。
这可能吗? 我有一个很好的搜索,但很难找到搜索条件来描述我的意思。
拆分上空白的条款,然后,每个术语,建立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能力。
试试这个:
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%'
不知道确切的语法的,因为我不在家,但类似的应该工作的东西。
谢谢,给它一个快速尝试,但没有得到任何地方。想想看,当我有机会的时候我会仔细看看 – penpen
它看起来比这更复杂一点,但我认为你对全文搜索是正确的,我没有看过。 谢谢您花时间帮助我。 – penpen