优先考虑mysql结果中的行

时间:2017-11-04 06:46:14

标签: mysql database

我正在尝试找到一个解决Mysql问题的简单方法。问题是,我有2列A和B,在某些行中,我分别在这些列中有数据X和Y.现在我将这些数据表示如下(仅作为示例)。该表还可能包含如下所示的其他数据。

A |乙
X | ÿ
X | ž
F | ÿ
X | ÿ
S | Ť
X | Ť
S | ÿ

现在我想运行一个查询,它在各自的列中找到X和Y,但按优先级显示它们。也就是说,X和Y一起出现的列应首先出现,然后出现具有单独列的列。

请注意,可能会有更多列,并且数据优先级也会相应地应用。因此,列匹配时,在获取结果时应将其作为优先级。

数据比较仅适用于每个字段。

我正在探索是否可以通过Mysql处理这种情况,或者我必须从PHP中查看一些内容。

2 个答案:

答案 0 :(得分:1)

您可以按值排序,它应该是st。像

... ORDER BY FIELD(A, 'X') DESC, FIELD(B, 'Y') DESC

答案 1 :(得分:0)

您可以使用“公式”计算订购的重量:

SELECT 
  taskid, levelskill, 
  CASE
    WHEN EXISTS 
    (SELECT 
      taskid 
    FROM
      assig 
    WHERE tasks.taskid = assig.taskid 
      AND tasks.lang = assig.lang) 
    THEN 'TRUE' 
    ELSE 'FALSE' 
  END AS Completed 
FROM
  tasks 
WHERE (lang = @lang) 
GROUP BY levelskill, taskid 

在线查看示例:http://sqlfiddle.com/#!9/6545e4/8