Can't gey chart displaying data when selecting more than one value in dropdown in flux query

Hi, the below query works fine until I select more than one item from the variable q_line

from(bucket: "volt_sense")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["_measurement"] == "mqtt_consumer")
  |> filter(fn: (r) => r["location"] == "rd2")
  |> filter(fn: (r) => r["_field"] == "${q_line}")
  |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
  |> yield(name: "mean")

when I inspect the query I get the following output

from(bucket: "volt_sense")
  |> range(start: 2023-07-12T01:26:52.391Z, stop: 2023-07-12T01:56:52.391Z)
  |> filter(fn: (r) => r["_measurement"] == "mqtt_consumer")
  |> filter(fn: (r) => r["location"] == "rd2")
  |> filter(fn: (r) => r["_field"] == "{A0,A1}")
  |> aggregateWindow(every: 1s, fn: mean, createEmpty: false)
  |> yield(name: "mean")


however, I think the line should look like this

|> filter(fn: (r) => r["_field"] == "A0" or r["_field"] == "A1" or r["_field"] == "A2" or r["_field"] == "A3")

how can I get a result like this in a multi-select variable?

Any help would be greatly appreciated?

I also get the same as you do above. I will try to find a solution.

I see a possible solution on the InfluxDB forum:

But on my test system, I get an error (I am selecting 203, 204 and 206 in my variable):

invalid: compilation failed: error @4:44-4:66: regex parse error: {203,204,206}:regex} error: repetition operator missing expression

How about something like this

|> filter(fn: (r) => r["_field"] =~ /^${q_line:regex}$/ )

Works for me! Thanks @yosiasz

Multi-value variable called TemperFurnaceNumber in Grafana and regex query in Flux:

image

image

  |> filter(fn: (r) => r["EquipNumber"] =~ /^${TemperFurnaceNumber:regex}$/ )

Inspect >> Query:

image

1 Like

it is a combination of

influxdb should really provide a proper non obscure way of doing this.