MySQL根据数据类型字段行和列提交时间

时间:2016-03-21 22:51:53

标签: mysql mysql-workbench

好的,所以我有一个wordpress插件,允许我在我的页面上完全按照我想要的方式创建一个表单。理想情况下,我不想改变它。但是当它将数据填充到mysql表时,它就像这样填充它:

Submit time | Datatype | Value

        1PM |   Client | bob  
        1PM |    Venue | Country Club  
        1PM | Job_Date | 2/20/22

我想将表转换为一个看起来像这样的新表:

ID | Client | Venue        | Job_Date  
 1 |    Bob | Country Club | 2/20/22

但是我很难想出来。我知道由于导入数据的方式(一次只有1个字段),我无法使用触发器。我基本上需要始终运行的代码来查找匹配的提交时间,并将每一行添加到相应的列中。我得到了一个视图,但我没有能力自动增加视图,所以我不再有一个ID列,我需要作为主键。有谁知道如何解决我的问题?

1 个答案:

答案 0 :(得分:0)

试试这个sqlfiddle

library(shiny)

ui <- shinyUI(fluidPage(
  titlePanel("Old Faithful Geyser Data"),

  sidebarLayout(
    sidebarPanel(
      numericInput("numInputs", "How many inputs do you want", 4),
      # place to hold dynamic inputs
      uiOutput("inputGroup")
    ),
    # this is just a demo to show the input values
    mainPanel(tableOutput("inputValues"))
  )
))

# Define server logic required to draw a histogram
server <- shinyServer(function(input, output) {
  # observe changes in "numInputs", and create corresponding number of inputs
  observeEvent(input$numInputs, {
    output$inputGroup = renderUI({
      input_list <- lapply(1:input$numInputs, function(i) {
        # for each dynamically generated input, give a different name
        inputName <- paste("input", i, sep = "")
        textInput(inputName, inputName, "1 2 3 4 5")
      })
      do.call(tagList, input_list)
    })
  })

  # this is just a demo to display all the input values
  output$inputValues <- renderTable({
    all <- paste(lapply(1:input$numInputs, function(i) {
      inputName <- paste("input", i, sep = "")
      input[[inputName]]
    }))
    matrix = as.matrix(read.table(text=all))
    data.frame(matrix)
  })

})

# Run the application
shinyApp(ui = ui, server = server)

虽然我可以解决这个问题,因为新数据出现在它之间的某个位置,它会给你新的ID ......所以它可能不适合你。

更新:此处sqlfiddle with trigger 只要Submit_Time始终是唯一的,此触发器就会起作用...否则,如果在不同的一天,如果发生相同的提交时间,它将更新具有匹配的submit_time的错误行。