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 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 是否在 out 中并不重要。

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

最佳答案

更改列的选择子句中的顺序。使用这个:

 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

关于mysql - 隐藏列或更改 MySQL 输出中列的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20997088/

相关文章:

mysql - 如何表示某一行来自哪个表?

mysql - 15天的Sql From hackerrank

java - 无法从 spring boot docker 容器连接 mysql docker 容器

mySQL 子查询 - 如果可能的话单次传递

php - Laravel-SQLSTATE[23000] : Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails

java - 合并操作无异常但对数据库没有影响 Glassfish 4.1 JPA

mysql - 将列[时间]转换为时间戳mysql

python - 没有要应用的迁移,但 Django 仍在尝试创建新的内容类型

php - 将带撇号的文本插入 MySQL

mysql - 如何使用 BETWEEN DATE 条件在交叉/左连接 MYSQL 中显示空值或零值