search term=[\'ISBN number on site\'] the variable(column): sentence, in MySQL table. It consist many different sentence.
the sentence I want to look for is \"The
Try:
SELECT * FROM testtable where Sentence like '%ISBN number on%site%' ;
The wildcard can go in the middle of a string too.
This is not a simple question. Your best bet is to use some type of fulltext search. Fulltext search can be configured to have stopwords (words that are omitted from search - like the word the
) and can have a minimum word length limit as well (words with less than certain characters long are also omitted from the search.
However, if you simply use
SELECT * FROM testtable
WHERE MATCH (sentence)
AGAINST ('ISBN number on site');
Then MySQL will return not just the record with the value you were looking for, but the records that have some of the words only, and in different order. The one you showed will probably be one of the highest ranking one, but there is no guarantee that it will be highest ranked one.
You may want to use Boolean fulltext search and prepend +
to every search word to force MySQL to return those records only that have all the search words present:
SELECT * FROM testtable
WHERE MATCH (sentence)
AGAINST ('+ISBN +number +on +site' IN BOOLEAN MODE);
But, on
should either be a stopword (it is on the default stipword lists) or should be shorter that the minimum word length, so should be omitted from the search expression (you will not get back any results):
SELECT * FROM testtable
WHERE MATCH (sentence)
AGAINST ('+ISBN +number +site' IN BOOLEAN MODE);
I know that this requires alteration of the search expression, however this will get you the best results using MySQL's built-in functionality.
The alternative is to use other fulltext search engines, such as sphinx to perform the search for you.