好的,所以我有一个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列,我需要作为主键。有谁知道如何解决我的问题?
答案 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的错误行。