如何使用MySQL将选择查询值更改为文本?

时间:2018-08-08 17:24:44

标签: mysql

看看下面的查询。如何将“操作”列显示为文本。 如果“操作”的结果为LEQ 0,则将文本“ Crash”放下,如果“操作” GRT 0是否显示文本“保持”?

SELECT col1 AS Action
FROM vdk
WHERE t_stamp Between "{StartTime}" AND "{EndTime}"

3 个答案:

答案 0 :(得分:0)

使用CASE WHEN ... ELSE ... END并从设置(查询)中选择

SELECT *, (CASE WHEN Action <= 0 THEN 'Crash' ELSE 'Hold' END) as ActionText
FROM (
    SELECT col1 AS Action
    FROM vdk
    WHERE t_stamp Between "{StartTime}" AND "{EndTime}"
) q

答案 1 :(得分:0)

重构上面的答案,因为我认为没有必要向别名表添加查询。我认为这应该可行,其他答案也应该可行,但是由于没有给定的原因,它的查询稍微复杂一些。

    <div class="col">

答案 2 :(得分:0)

此应用程序类似于我的第一个问题,我认为它可能会帮助其他人。 用户可以从表的下拉列表中选择一组选项,以将值输入数据库。

通过以下脚本使用点火的功率表组件的扩展功能configureEditor。 该脚本设置了下拉列表。

if colName == 'Action':
   return {options': [(0, 'Null'), (1, 'HOLD'), (2, 'CRASH')]}

带有相同的Power Table的扩展功能onCellEdited脚本。 该脚本将选择内容作为值输入数据库。

#onCellEdited Upadte Query
row = rowIndex
col = colIndex
colName = colName
value = newValue

ndx = self.data.getValueAt(row,0)
query = "UPDATE vdk SET %s = ? WHERE ndx = ?" % colName
system.db.runPrepUpdate(query,[value,ndx],'history')
system.db.refresh(self.data)