4
使用INI函數可以使用ILIKE運行查詢嗎?例如:使用ILIKE和IN查詢
SELECT store_names
FROM stores
WHERE states ILIKE IN (SELECT location
FROM locations
WHERE stateID = 1)
我想通過ILIKE函數運行嵌套查詢返回的結果。有沒有辦法做到這一點?
使用INI函數可以使用ILIKE運行查詢嗎?例如:使用ILIKE和IN查詢
SELECT store_names
FROM stores
WHERE states ILIKE IN (SELECT location
FROM locations
WHERE stateID = 1)
我想通過ILIKE函數運行嵌套查詢返回的結果。有沒有辦法做到這一點?
你正在考慮一個比需要更多的角落。可以更簡單:
SELECT s.store_names, l.location
FROM stores s
JOIN (
SELECT location
FROM locations
WHERE stateid = 1
) l ON s.states ILIKE l.location
我只使用子選擇來提高性能。不知道,如果查詢規劃是足夠聰明,使用相同的計劃,這個簡單的查詢(和你的Postgres的版本):
SELECT s.store_names, l.location
FROM stores s
JOIN locations l ON s.states ILIKE l.location
WHERE l.stateid = 1
也許你可以嘗試(與EXPLAIN ANALYZE
),並報告他們是否使用相同的計劃(並執行相同的)?
而且我懷疑你真正需要添加%
你的目的:
... ON s.states ILIKE ('%' || l.location || '%')
偉大的工作,謝謝! – Utopia025