Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MYSQL查找相关查询_Mysql_Database - Fatal编程技术网

MYSQL查找相关查询

MYSQL查找相关查询,mysql,database,Mysql,Database,我正在编写一个查询,希望从一个限制为10行的数据库中提取相关字段 该查询很容易编写,但是我想知道是否有一种方法可以编写该查询,以便它搜索相关项并首先提取这些项,如果这些项小于10,则只提取剩余项的随机场 下面是我用来提取相关行的查询 SELECT * FROM table WHERE term LIKE '%term1%' or term LIKE '%term2%' LIMIT 0,10 您只需按照您首先要查找的术语来订购表格,一种方法如下: SELECT * FROM table OR

我正在编写一个查询,希望从一个限制为10行的数据库中提取相关字段

该查询很容易编写,但是我想知道是否有一种方法可以编写该查询,以便它搜索相关项并首先提取这些项,如果这些项小于10,则只提取剩余项的随机场

下面是我用来提取相关行的查询

SELECT * FROM table WHERE term LIKE '%term1%' or term LIKE '%term2%' LIMIT 0,10

您只需按照您首先要查找的术语来订购表格,一种方法如下:

SELECT * FROM table 

ORDER BY (
  (
    CASE WHEN term LIKE '%term1%'
    THEN 1
    ELSE 0
    END
  ) + (
    CASE WHEN term LIKE '%term2%'
    THEN 1
    ELSE 0
    END
  )
) DESC
LIMIT 0,10

我的想法是可行的,我认为:用随机10的并集选择10,然后将结果限制为10。为了澄清,如果一组给定的两个搜索词产生的结果少于10个,你想用随机的非重复行填充结果集吗?@Dave如果回答了你的问题,接受答案是礼貌的。