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