On 8/11/2012 12:05 PM, Rajeev Prasad wrote:
> here is given string of type:... "as23,rt54,yh79"
> and i have to lookup in a table which has column "id" which has only one four letter
> word. i have to select that row in which the colum 'id' value matches any of the word in
> given string...
> ... snipped ...
Relational database theory has been shown to be quite effective at
solving problems like yours. The problem with your design is that you
do not have the ability to do an exact-value index for every 4-letter
set in your longer strings. The relational solution is to make two
tables. One for the row and one for the list of values that belong to
Another approach to this is to look at your lists of values as 4-letter
words. For this design techniques of full-text indexing may be
applicable. However many full-text engines will omit or ignore words
that appear too often in the data as they have very low selectivity. For
example, if you had a database of news articles and each row contained
the contents of one article, then the most common words like "a", "an",
"the", "like", "with", "on", and so forth are very likely to appear in
every single row of data. This makes those terms useless as search
items. If you happen to have one of your 4-letter words of data that
manages to appear in enough rows to cross that threshold, then using a
full-text index will fail to locate any rows that contain that value.
My preference is to use the two-table approach as I can index both the
descriptive data (on the parent table) and all of the values that appear
in the list (on the child table) to make retrieval both accurate and
MySQL Principal Technical Support Engineer
Oracle USA, Inc. - Hardware and Software, Engineered to Work Together.
Office: Blountville, TN