Newsgroup: it.comp.software.database
Titolo: select in campo con testo formattato

Utilizzo MySql con PHP5.
Ho una tabella con dei campi che contengono del testo formattato.
Quello che segue � uno spezzone esemplificativo del contenuto di un campo:
&lt;p style=&quot;text-align: center;&quot;&gt;
 &amp;nbsp;&lt;/p&gt;
&lt;p&gt;
 &amp;nbsp;&lt;br /&gt;
 accompagnati dall&amp;#39;attestato di certificazione energetica ed hanno 
prestazioni superiori a quelle richieste per le agevolazioni del 
55%.&lt;em&gt;Come usufruire dell&amp;#39;agevolazione:&lt;/em&gt;&lt;br 
/&gt;
 Occorre trasmettere all&amp;#39;Enea (attraverso il sito internet &lt;a 
href=&quot;
http://www.acs.enea.it
&quot;&gt;
www.acs.enea.it
&lt;/a&gt;) entro 
90 giorni dalla fine dei lavori la documentazione necessaria: ovvero i dati 
contenuti nell&amp;#39;attestato di
Dovendo fare una ricerca  sui campi utilizzo una query del tipo:
SELECT news.idnews, news.ordine, news.vocemenu, news.testonews FROM news
WHERE (((news.ordine)>0) AND ((news.vocemenu) Like '%$CasellaDiRicerca%') 
AND ((news.testonews) Like '%$CasellaDiRicerca%'));
Dove $CasellaDiRicerca � il testo che viene cercato.
Purtroppo non trattandosi di solo testo mi vengono dei risultati sbagliati.
La mia domanda �: dove posso documentarmi per fare una query corretta?
Grazie a chi trovera il tempo pre aiutarmi.
Leonardo

 documentarmi per fare una query corretta? 
Ci sono due modi, credo:
1) Usi il supporto per la ricerca fulltext, sperando che il parser abbia
   supporto per XML (ossia che tokenizzi correttamente le entità HTML ed
   i tag).
2) Usi un tipo di dato che rappresenti un documento o frammento XML, e
   effettui le query tramite gli operatori/funzioni appropriati (come
   XQuery).
Queste due funzionalità sono disponibili con PostgreSQL:
1) 
http://www.postgresql.org/docs/8.4/interactive/textsearch-parsers.html
2) 
http://www.postgresql.org/docs/8.4/interactive/datatype-xml.html
Non so cosa offra MySQL.
Ciao  Manlio

 2) 
http://www.postgresql.org/docs/8.4/interactive/datatype-xml.html
Premetto che non conosco PostgreSQL, ma sono interessato alle funzioni XML  
(che questo server supporta).
Avevo già dato un'occhiata a queste due sezioni del manuale però alcune  
cose mi restano poco chiare. Inoltre tu parli di xquery, di cui non mi  
pare si faccia cenno nella documentazione PostgreSQL.
In sostanza la mia domanda è questa:
che cosa offre PostgreSQL rispetto a un server XML-nativo come eXsist che  
adotta, mi sembra, il linguaggio xquery?
Grazie.
Michele

 
C'è una terza, più semplice soluzione.
Nella tua tabella aggiungi una colonna addizionale che contiene il testo 
"estratto" dal documento HTML; l'estrazione la fai nella tua applicazione.
Ciao  Manlio

 
La differenza tra XPath ed XQuery non la sto qui a spiegare.
PostreSQL è un database relazionale, in cui la gestione di documenti XML 
è stata integrata semplicemente perchè PostgreSQL è stato progettato per 
essere estensibile, ossia creare nuovi tipi, operatori sui tipi e 
funzioni sui tipi.
Il supporto ad XML è praticamente limitato all'uso di XPath.
Per tutto il resto hai a disposizione il modello relazionale.
Un database XLM nativo usa un modello gerarchico, ed XQuery è un 
linguaggio di query su questa struttura.
Personalmente non ho mai usato XQuery, ne usato il supporto XML in 
PostgreSQL, quindi non so darti maggiori informazioni ed esempi reali.
In particolare se mi chiedi se sia meglio PostgreSQL + supporto XML o 
eXsist, non saprei risponderti.
Ti potrei solo suggerire di usare PostgreSQL, perchè usa un modello più 
maturo.
Ciao  Manlio