|
|
|||||||||
|
|||||||||
| |||||||||
|
|
|
| ||||||||||||||||||||||||||
![]() |
|
|
«
Previous Thread
|
Next Thread
»
|
Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
#1
|
|||
|
|||
|
MySQL 5 - Searching Database Using Like
Hello,
I am trying to query my database for specific words in variables. I have one database titled pranks with a column called prankentry and tags Another database holds an ID number and an entrytext column. I pass the ID number through the URL to /pranks/index.php?id=26. On index.php i am running a query to try and find similar items in the pranksentry row. Here's my code: $id = $_GET['id']; //GET ID $query = "SELECT entrytext FROM hmr WHERE id=$id"; //GET POST $result = mysql_query($query); while($row = mysql_fetch_array($result)) { $text = $row['entrytext']; //CHANGE VARIABLE } $sql = "SELECT * FROM pranks WHERE pranksentry LIKE '%$text%' ORDER BY id DESC"; //GET PRANKS SIMILAR to TEXT $result5 = mysql_query($sql); while($row = mysql_fetch_array($result5)) { $prank = $row['prankentry']; echo $prank; //OUTPUT Prank } It's very strange. By setting $text = 'test' and putting a prank into my that table with the text, 'testing to do this testing to do that'. The code above displays that line. However, if i set $text = "he talks too much, and never shuts up." and have a prank in my database with the text, 'shuts', it does not show the results i would like. ----------------------------- Thanks & regards Lokananth Live Chat Software By miOOt |
|
#2
|
|||
|
|||
|
using like only does an exact substring match. meaning that if you search for the text "he talks too much, and never shuts up", then you have to have that exact string somewhere in the text. LIKE is not supposed to be used for searches, it is made to match a string within another string, as an exact match with very little fuzzy logic.
It sounds like what you need is a full text search. a full text search index on the column you want to search and use the match()...against syntax and it will come back with a ranking on how close the search was based on lots of things like how many times the search is in the text and matching all/partial sentences as well as introducing some logic like +someSearch means that word must be in the result, -someSearch means that word can't be in the result, "some search" treats multiple words as if they were one meaning an exact string match...etc. http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html use that to get started, if it is confusing or anything then google "mysql full text search" and there are tons of articles/tutorials out there. |
![]() |
| Viewing: Codewalkers Forums > Other Technologies > Database Help > MySQL 5 - Searching Database Using Like |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|
|
|
|