Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Mailing Lists -> Oracle-L -> Re: SQL Question
Hi,
How 'bout "not like"
these querries will always use a full tablescan though.
Quicker ways? maybe the oracle context search or something like that anyway, but I've never used it.
Jack
"Bill Tantzen" <tantz001_at_tc.u To: Multiple recipients of list ORACLE-L <ORACLE-L_at_fatcity.com> mn.edu> cc: Sent by: Subject: SQL Question root_at_fatcity.c om 21-08-2001 15:06 Please respond to ORACLE-L
Greetings!
I don't see a lot of general sql questions on this list, so if this is the wrong place to post this sort of thing, just let me know! This will hopefully seem like a simple question, but I am a relative novice in sql programming!
Here is the (simplified) scenario with three tables:
biblio table
id integer
isbn varchar2
title varchar2
subject table (0 or many per id)
id integer (fk biblio.id)
subject varchar2
keyword table (0 or many per id)
id integer (fk biblio.id)
keyword varchar2
I wish to find all the id's that contain a given word in any of the varchar fields. My approach has been something like:
select id from biblio
where title like '%word%'
union
select id from subject
where subject like '%word%'
union
select id from keyword
where keyword like '%word%'
First question: do you think this is a good way to do it? Is there a
better way?
Second question, how do I do a negative search, that is, find all the id's
that DO NOT contain a given word in any of the varchar fields. Using an
approach similar to the previous sql (using intersect instead of union)
does
not work, since there may be biblio records that do not have corresponding
subject or keyword records.
Perhaps there is not a simple query that will do the trick and I should be using a stored procedure?
Thanks in advance for any advice!!!!
Bill
--
Please see the official ORACLE-L FAQ: http://www.orafaq.com
--
Author: Bill Tantzen
INET: tantz001_at_tc.umn.edu
Fat City Network Services -- (858) 538-5051 FAX: (858) 538-5051 San Diego, California -- Public Internet access / Mailing Liststo: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing).
--------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
Indien bovenstaand e-mailbericht niet aan u is gericht, verzoeken wij u vriendelijk doch dringend het e-mailbericht te retourneren aan de verzender en het origineel en eventuele kopieën te verwijderen en te vernietigen.
Ernst & Young hanteert bij de uitoefening van haar werkzaamheden algemene voorwaarden, waarin een beperking van aansprakelijkheid is opgenomen. De algemene voorwaarden worden u op verzoek kosteloos toegezonden.
If you are not the intended recipient of this communication please return the communication to the sender and delete and destroy all copies.
In carrying out its engagements, Ernst & Young applies general terms and conditions, which contain a clause that limits its liability. A copy of these terms and conditions is available on request free of charge.
--
Please see the official ORACLE-L FAQ: http://www.orafaq.com
--
Author:
INET: nlzanen1_at_EY.NL
Fat City Network Services -- (858) 538-5051 FAX: (858) 538-5051 San Diego, California -- Public Internet access / Mailing Liststo: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing). Received on Tue Aug 21 2001 - 08:30:20 CDT
--------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
![]() |
![]() |