【问题标题】:select * from t limit @var从 t 限制 @var 中选择 *
【发布时间】:2019-09-09 10:23:35
【问题描述】:

我在 grafana 上使用多值选项来选择指标并动态显示它们,此方法适用于图表,因为我没有放置任何限制器,但我想使用 Gauge 显示最后输入的数据和选择的选项像这样显示所需的指标

.

我在这里卡住了。

这是我尝试过的事情,但没有奏效,;

我试图创建一个测试程序;

CREATE PROCEDURE getData()

  BEGIN                 

  SET @itemlimit := JSON_LENGTH(JSON_ARRAY('conductivite0','conductivite1'));

  SELECT UNIX_TIMESTAMP(datetime) as time_sec,
    value as value, 
    label as metric 
  FROM valeur_capteur_SD 
  WHERE label in ('conductivite0','conductivite1') 
  ORDER BY id DESC LIMIT 0, @itemlimit;

  END //

DELIMITER ;

并使用变量,

SET @var = 
  (
  SELECT vars
  FROM (
    SELECT 
      JSON_LENGTH(
        REPLACE(
          CONCAT("[", "'conductivite0','conductivite1'", "]"),"'",'"'
        )
      ) 'vars') as vars
  );
SELECT
  UNIX_TIMESTAMP(datetime) as time_sec,
  value as value,
  label as metric
FROM valeur_capteur_SD
WHERE label in ('conductivite0','conductivite1','debit0')
ORDER BY id DESC
LIMIT @var;

【问题讨论】:

    标签: mysql grafana


    【解决方案1】:

    好吧,经过几个小时的努力,我找到了解决方法

    
    DELIMITER //
    CREATE PROCEDURE `getSelectedSensors`(IN param TEXT)
    BEGIN  
        SET @query1 := CONCAT("
            SELECT UNIX_TIMESTAMP(datetime) as time_sec,value as value, label as metric 
            FROM valeur_capteur_SD WHERE label in (",param,") 
            ORDER BY id DESC 
            LIMIT 0, ?");
        PREPARE stmt1 FROM @query1;
        SET @itemlimit = (LENGTH(param) - LENGTH(REPLACE(param, ',', ''))) +1;
        EXECUTE stmt1 USING @itemlimit;
        DEALLOCATE PREPARE stmt1;
    END;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多