在MYSQL中使用带有多个字段和空格的通配符

pen*_*pen 6 mysql sql search sql-like

我在两个领域寻找任何类似的比赛时遇到了一些麻烦.例如,我有一个包含值的表:

CAR MAKE   CAR MODEL
Ford       Mustang (Shelby)
Toyota     Corolla
Seat       Leon

etc etc.
Run Code Online (Sandbox Code Playgroud)

我想通过搜索以下任何组合来获得结果"Ford,Mustang(Shelby)":

  • 野马
  • 谢尔比
  • 福特野马

    或任何其他组合.

这可能吗?我有一个很好的搜索,但很难找到搜索术语来描述我的意思.

mu *_*ort 7

在空格上拆分你的术语然后,对于每个术语,构建一些像这样的SQL:

car_make like '%x%' or car_model like '%x%'
Run Code Online (Sandbox Code Playgroud)

然后加入所有这些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%'
Run Code Online (Sandbox Code Playgroud)

如果您需要更复杂的东西,那么请研究MySQL的全文搜索功能.