隐藏列或更改MySQL输出中的列顺序

时间:2014-01-08 13:29:03

标签: mysql

我有一个SQL语句,我需要帮助,看起来像这样

SELECT 
  unix_timestamp(prefix_rsform_submission_values.FieldValue) AS dato,
  prefix_rsform_submission_values.SubmissionValueId AS var,
  (SELECT prefix_rsform_submission_values.FieldValue FROM prefix_rsform_submission_values WHERE prefix_rsform_submission_values.SubmissionValueId = (var -1)) AS lykke
FROM
  prefix_rsform_submissions
  INNER JOIN prefix_rsform_submission_values ON (prefix_rsform_submissions.SubmissionId = prefix_rsform_submission_values.SubmissionId)
WHERE
  prefix_rsform_submissions.FormId = 10 AND 
  prefix_rsform_submissions.UserId = 278 AND 
  prefix_rsform_submission_values.FieldName = 'dato'
ORDER BY
  prefix_rsform_submission_values.SubmissionValueId

我在Joomla模块中使用结果。我需要第一列包含'Dato'和第二列包含'Lykke' 无论如何要从输出中删除'var'列或让它进入第3列? 目前它输出这个,我首先需要dato然后lykke。只要var不在第一列或第二列中,var就在out中并不重要。

dato        var      lykke
1290254400  1393     10
1448020800  1397     9
1637409600  1401     9

1 个答案:

答案 0 :(得分:0)

更改列的select子句中的顺序。使用此:

 SELECT t.dato, t.lykke
  FROM
  (SELECT 
      unix_timestamp(prefix_rsform_submission_values.FieldValue) AS dato,
      prefix_rsform_submission_values.SubmissionValueId AS var,
      (SELECT prefix_rsform_submission_values.FieldValue FROM prefix_rsform_submission_values WHERE prefix_rsform_submission_values.SubmissionValueId = (var -1)) AS lykke
    FROM
      prefix_rsform_submissions
      INNER JOIN prefix_rsform_submission_values ON (prefix_rsform_submissions.SubmissionId = prefix_rsform_submission_values.SubmissionId)
    WHERE
      prefix_rsform_submissions.FormId = 10 AND 
      prefix_rsform_submissions.UserId = 278 AND 
      prefix_rsform_submission_values.FieldName = 'dato'
    ORDER BY
      prefix_rsform_submission_values.SubmissionValueId) t

通过这种方式,您可以根据需要制作相同的订单。

与ALIAS编辑的代码:

SELECT t.dato, t.lykke
  FROM
    (SELECT 
      unix_timestamp(pr3.FieldValue) AS dato,
      pr3.SubmissionValueId AS var,
      (SELECT pr1.FieldValue 
          FROM prefix_rsform_submission_values AS pr1
          WHERE pr1.SubmissionValueId = (var -1)) AS lykke
    FROM
      prefix_rsform_submissions AS pr2
      INNER JOIN prefix_rsform_submission_values pr3 ON (pr2.SubmissionId = pr3.SubmissionId)
    WHERE
      pr2.FormId = 10 AND 
      pr2.UserId = 278 AND 
      pr3.FieldName = 'dato'
    ORDER BY
      pr3.SubmissionValueId) AS t