MYSQL 中带有多个字段和空格的 LIKE 通配符

发布于 2024-11-30 07:27:38 字数 368 浏览 0 评论 0原文

我在两个字段中搜索任何相似的匹配时遇到一些问题。 例如,我有一个包含值的表:

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

etc etc.

我希望能够通过搜索以下任何组合来获取结果“Ford,Mustang(Shelby)”:

  • Ford

  • 野马

  • 谢尔比

  • 福特野马

    或任何其他组合。

这可能吗? 我进行了很好的搜索,但很难找到搜索词来描述我的意思。

I'm having some trouble searching for any similar match in two fields.
For example I have a table with the values:

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

etc etc.

I want to be able to get the result "Ford, Mustang (Shelby)" by searching for any of the following combinations:

  • Ford

  • Mustang

  • Shelby

  • Ford Mustang

    or any other combination.

Is this possible?
I've had a good search but it's hard to find the search terms to describe what I mean.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

旧人哭 2024-12-07 07:27:38

用空格分割术语,然后为每个术语构建一点 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 的 全文搜索 功能。

Split your terms on whitespace and then, for each term, build a little bit of SQL like this:

car_make like '%x%' or car_model like '%x%'

Then join all of those with or to get your WHERE clause. So for "Shelby Ford", you'd end up with SQL like this:

select stuff
from cars
where car_make like '%Shelby%'
   or car_model like '%Shelby%'
   or car_make like '%Ford%'
   or car_model like '%Ford%'

If you need anything more complicated then investigate MySQL's full-text search capabilities.

|煩躁 2024-12-07 07:27:38

尝试一下:

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%'

不确定确切的语法,因为我不在家,但类似的东西应该可以工作。

另请参阅:在 WHERE 子句中使用 mysql concat()?

Give this a try:

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%'

Not sure of the exact syntax since I'm not at home but something similar should work.

See also: Using mysql concat() in WHERE clause?

过潦 2024-12-07 07:27:38

在这种情况下,使用 LIKE '%Ford Mustang%' 和 LIKE 'Ford Mustang%' 之间有什么区别

In this case what is the difference between using LIKE '%Ford Mustang%' and LIKE 'Ford Mustang%'

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文