像查询一样的mysql得到最大的像

时间:2014-07-12 15:09:44

标签: mysql sql

我想执行查询:

 ----------------------
|name                  |
 ----------------------
|data                  |
|data get go           |
|data get to go        |
 ----------------------

Select * from table where name like '%data%' or name like '%go%' or name like'%get%';

度Acc。对我来说应该是我:

 ----------------------
|name                  |
 ----------------------
|data get go           |
|data get to go        |
 ----------------------

但是我得到了

 ----------------------
|name                  |
 ----------------------
|data                  |
|data get go           |
|data get to go        |
 ----------------------

请帮助我获得正确的输出。

2 个答案:

答案 0 :(得分:0)

你的第一个where子句

 name like '%data%

将包括第一行。 所以把它改成

Select * from table where name like '%data%' AND (name like '%go%' or name like'%get%');

那应该这样做。它将确保数据与goget

一起出现在名称中

编辑:

跟进问题......

有点难以理解你想说的话。但是,您是否希望返回搜索中名称中包含最多单词的结果?所以,如果我搜索“1 2 3 4 5”,

来自 的 _________
|名称|
| --------------- |
| 1 2 |
| 1 2 3 4 5 |
| 1 2 3 |
| 1 2 3 4 |
----------------

你想要最常用的前三名。所以:

<强> _________
| 1 2 3 4 5 |
| 1 2 3 4 |
| 1 2 3 |
-----------------

它不会返回'1 2'行。这就是你问的问题吗?

答案 1 :(得分:0)

要获得上述结果,您可以使用此查询

SELECT * FROM `table` WHERE name like 'data%get%go'

这将输出此格式的结果

data dummy get dummy go