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

隐藏列或更改MySQL输出中列的顺序,mysql,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

我有一个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列中? 目前,它输出这个,我需要达托第一,然后莱克。只要var不在第一列或第二列中,它是否在out中并不重要

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

更改列的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
这样你就可以按你的要求下同样的订单了

使用别名编辑的代码:

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

嵌套的select语句使用变量,因此,这不可能是简单的removed@user3165012然后在嵌套的select语句中使用全名
prefix\u rsform\u submission\u values.SubmissionValueId
,而不是
var
。将var替换为prefix\u rsform\u submission\u submission\u values.SubmissionValueId将生成和error@user3165012我已经更新了代码,现在检查一下。这对你有用。酷。谢谢你,用别名编辑的代码可以工作:D你的聪明人:)