背景:現在要做三表聯查,posts表和author表和ip表,其中user表的profile字段以jsonb類型存儲在數據庫,其類型是字典,nickname是其中的一個key,現要對nickname進行模糊查詢,實現sql如下:
SELECT * FROM posts p LEFT JOIN users u ON p.poster_id=u.id AND p.poster_type='User' LEFT JOIN authors a ON p.poster_id = a.id AND p.poster_type='Author' LEFT JOIN ips i ON p.poster_id = i.id AND p.poster_type='IP' WHERE u.profile #>>'{nickname}' LIKE 'asd%' OR a.name LIKE 'asd%' OR i.name LIKE 'asd%';