Ho una ricerca array in cappello Postgres corrisponde almeno un tag come questo:Postgres Array prefisso corrispondenza
SELECT * FROM users WHERE tags && ['fun'];
| id | tags |
| 1 | [fun,day] |
| 2 | [fun,sun] |
E 'possibile abbinare il prefissi? Qualcosa di simile:
SELECT * FROM users WHERE tags LIKE 'f%';
| id | tags |
| 1 | [fun,day] |
| 2 | [fun,sun] |
| 3 | [far] |
| 4 | [fin] |
che esiste clausola non è corretto - guardare i risultati. Manca un riferimento alla query esterna per associare le righe. Prova ad aggiungere AND 'id = u.id' (è" u "è l'alias per la tabella esterna). Fiddle aggiornato: http://sqlfiddle.com/#!12/a6940/10/0 – bma
Non ho molta esperienza in PostgreSQL (principalmente in SQL server), ma sono abbastanza sicuro di sbagliarvi e BTW la mia query restituisce il risultato corretto in sqlfiddle. Exists sta già lavorando ai tag di riga correnti, quindi id = u.id. SQLFIDDLE è inattivo al momento, quindi lo controllerò più tardi. –
in pratica la mia query potrebbe essere riscritta come 'select * dagli utenti come tu esiste (seleziona * da unnest (u.tags) come arr dove arr come 'f%')' –