Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/36.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
Sql 两个字段中的搜索表首先显示第一个结果_Sql_Union - Fatal编程技术网

Sql 两个字段中的搜索表首先显示第一个结果

Sql 两个字段中的搜索表首先显示第一个结果,sql,union,Sql,Union,我有一个名为Photos的表(Id、标题、描述、日期、联机)。 我想按标题和说明搜索表,但我想先查看标题搜索的结果,然后查看说明的结果 我尝试了正常的搜索,但不知道如何将它们分开 SELECT * FROM [Photos] WHERE ([Online] = 1) AND ([Description] like '%" + querytext + "%') OR ([Title] like '%" + querytext + "%') ORDER BY [Date] DESC, [Id

我有一个名为Photos的表(Id、标题、描述、日期、联机)。 我想按标题和说明搜索表,但我想先查看标题搜索的结果,然后查看说明的结果

我尝试了正常的搜索,但不知道如何将它们分开

SELECT * FROM [Photos] 
WHERE ([Online] = 1) 
AND ([Description] like '%" + querytext + "%') 
OR ([Title] like '%" + querytext + "%') 
ORDER BY [Date] DESC, [Id] DESC
然后我试着和工会合作,但也没有成功

SELECT * FROM [Photos] 
WHERE ([Online] = 1) 
AND ([Description] like '%" + querytext + "%') 
UNION 
SELECT * FROM [Photos] 
WHERE ([Online] = 1) 
AND ([Title] like '%" + querytext+ "%') 
ORDER BY [Date] DESC, [Id] DESCBeto
试试这个:

SELECT * FROM [Photos] 
WHERE ([Online] = 1) 
AND (([Description] like '%" + querytext + "%') 
OR ([Title] like '%" + querytext + "%')) 
ORDER BY [Date] DESC, [Id] DESC
这个怎么样:

SELECT *, CASE WHEN ([Description] like '%" + querytext + "%') THEN 1 WHEN ([Title] like '%" + querytext + "%') THEN 2 END AS ord  FROM [Photos] 
WHERE ([Online] = 1) 
AND (([Description] like '%" + querytext + "%') 
OR ([Title] like '%" + querytext + "%')) 
ORDER BY [Date] DESC, [Id] DESC , ord DESC  
试试这个:

SELECT * FROM [Photos] 
WHERE ([Online] = 1) 
AND (([Description] like '%" + querytext + "%') 
OR ([Title] like '%" + querytext + "%')) 
ORDER BY [Date] DESC, [Id] DESC
这个怎么样:

SELECT *, CASE WHEN ([Description] like '%" + querytext + "%') THEN 1 WHEN ([Title] like '%" + querytext + "%') THEN 2 END AS ord  FROM [Photos] 
WHERE ([Online] = 1) 
AND (([Description] like '%" + querytext + "%') 
OR ([Title] like '%" + querytext + "%')) 
ORDER BY [Date] DESC, [Id] DESC , ord DESC  

添加一些将标记行的列:

SELECT *, 1 AS Mark 
FROM [Photos] 
WHERE ([Online] = 1) 
AND ([Title] like '%" + querytext + "%') 
UNION ALL
SELECT *, 2 AS Mark 
FROM [Photos] 
WHERE ([Online] = 1) 
AND ([Description] like '%" + querytext+ "%') 
ORDER BY Mark, [Date] DESC, [Id] DESC

添加一些将标记行的列:

SELECT *, 1 AS Mark 
FROM [Photos] 
WHERE ([Online] = 1) 
AND ([Title] like '%" + querytext + "%') 
UNION ALL
SELECT *, 2 AS Mark 
FROM [Photos] 
WHERE ([Online] = 1) 
AND ([Description] like '%" + querytext+ "%') 
ORDER BY Mark, [Date] DESC, [Id] DESC

只需在您的
联合
上包含一个
字段,将结果放入子查询并对子查询进行排序

SELECT *
FROM (
    SELECT 'Description' as source, * FROM [Photos] 
    WHERE ([Online] = 1) 
    AND ([Description] like '%" + querytext + "%') 
    UNION 
    SELECT 'Title' as source, * FROM [Photos] 
    WHERE ([Online] = 1) 
    AND ([Title] like '%" + querytext+ "%') 
    ) T
ORDER BY source DESC, [Date] DESC, [Id] DESC

只需在您的
联合
上包含一个
字段,将结果放入子查询并对子查询进行排序

SELECT *
FROM (
    SELECT 'Description' as source, * FROM [Photos] 
    WHERE ([Online] = 1) 
    AND ([Description] like '%" + querytext + "%') 
    UNION 
    SELECT 'Title' as source, * FROM [Photos] 
    WHERE ([Online] = 1) 
    AND ([Title] like '%" + querytext+ "%') 
    ) T
ORDER BY source DESC, [Date] DESC, [Id] DESC

您可以在
orderby
子句中使用
CASE
表达式:

SELECT *
FROM Photos 
WHERE
  Online = 1 
  AND Description like '%" + querytext + "%'
  OR Title like '%" + querytext + "%'
ORDER BY
  CASE WHEN Title like '%" + querytext + "%' THEN 1 ELSE 2 END,
  [Date] DESC,
  [Id] DESC

您可以在
orderby
子句中使用
CASE
表达式:

SELECT *
FROM Photos 
WHERE
  Online = 1 
  AND Description like '%" + querytext + "%'
  OR Title like '%" + querytext + "%'
ORDER BY
  CASE WHEN Title like '%" + querytext + "%' THEN 1 ELSE 2 END,
  [Date] DESC,
  [Id] DESC


你不也需要按马克点菜吗?是的,你不需要把它们都放在子查询中吗?@Fred,你当然需要。谢谢你发现了这一点。@JuanCarlosOropeza,它不需要输入子查询就可以工作。它重复在标题和描述中都有查询文本的记录。试图从UNION ALL中删除ALL,但没有任何区别。您不需要按Mark排序吗?是的,您不需要将两者都放入子查询中吗?@Fred,您当然需要。谢谢你发现了这一点。@JuanCarlosOropeza,它不需要输入子查询就可以工作。它重复在标题和描述中都有查询文本的记录。试图从UNION ALL中删除ALL,但没有任何区别。它给了我与我的第一个代码相同的结果。我需要它在搜索结果中首先显示匹配的标题,然后显示匹配的描述。Kamran您走的是正确的道路,但filiprem解决方案很简单。它为我提供了与我的第一个代码相同的结果。我需要它在搜索结果中首先显示匹配的标题,然后显示匹配的描述。Kamran您走的是正确的道路,但filiprem解决方案很简单。复制标题和描述上都有querytext的记录。那么@Kamran Farzami的上一次更新呢?看起来像是在右边track@Humberto您可以共享示例数据和预期输出吗?复制标题和描述上都有querytext的记录。来自@Kamran Farzami的最后一次更新数据如何?看起来像是在右边track@Humberto您能否共享示例数据和预期输出?