我想知道是否可以使用IN子句进行查询,其中其内部的选项是LIKE子句,例如我有现有的SQL返回与我打算的相同结果,只是似乎这样做很繁琐。
SELECT *
FROM pg_stat_activity
WHERE application_name NOT LIKE '%psql%'
AND (current_timestamp - state_change) > INTERVAL '30 minutes'
AND state IN (
SELECT state
FROM pg_stat_activity
WHERE state LIKE '%idle%'
OR state LIKE '%disabled%'
)
有没有一种方法可以用类似的东西替换
SELECT *
FROM pg_stat_activity
WHERE application_name NOT LIKE '%psql%'
AND (current_timestamp - state_change) > INTERVAL '30 minutes'
AND state IN ('%idle%', '%disabled%')
SIMILAR TO
在底层使用正则表达式。因此,我预计它的工作速度可能比LIKE
慢。但我不认为这是你的情况。 - Arsen