MYSQL 中带有多个字段和空格的 LIKE 通配符
我在两个字段中搜索任何相似的匹配时遇到一些问题。 例如,我有一个包含值的表:
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
用空格分割术语,然后为每个术语构建一点 SQL,如下所示:
然后用
or
连接所有这些术语以获得 WHERE 子句。因此,对于“Shelby Ford”,您最终会得到这样的 SQL:如果您需要更复杂的内容,请研究 MySQL 的 全文搜索 功能。
Split your terms on whitespace and then, for each term, build a little bit of SQL like this:
Then join all of those with
or
to get your WHERE clause. So for "Shelby Ford", you'd end up with SQL like this:If you need anything more complicated then investigate MySQL's full-text search capabilities.
尝试一下:
不确定确切的语法,因为我不在家,但类似的东西应该可以工作。
另请参阅:在 WHERE 子句中使用 mysql concat()?
Give this a try:
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?
在这种情况下,使用 LIKE '%Ford Mustang%' 和 LIKE 'Ford Mustang%' 之间有什么区别
In this case what is the difference between using LIKE '%Ford Mustang%' and LIKE 'Ford Mustang%'