![]() |
MySql LIKE - Printable Version +- CodeIgniter Forums (https://forum.codeigniter.com) +-- Forum: Using CodeIgniter (https://forum.codeigniter.com/forumdisplay.php?fid=5) +--- Forum: General Help (https://forum.codeigniter.com/forumdisplay.php?fid=24) +--- Thread: MySql LIKE (/showthread.php?tid=64390) Pages:
1
2
|
MySql LIKE - glennm - 02-15-2016 Hello everyone, I am trying to do a sql query with LIKE: PHP Code: $this->db->query("SELECT * FROM pvp_map WHERE Server_Id = ".$Id." AND Name LIKE '%".$this->db->escape_like_str($Name)."%' ESCAPE '!' GROUP BY Player_Id, Name ORDER BY Name LIMIT ".$start.",".$limit); But when the string that is getting escaped starts with an ! it doesn't give any results. This is a problem: !Joker! This is NOT a problem: Joker! Does anyone know how to fix this please? I have to leave ESCAPE '!' in the query or else strings containing % or _ wont work. The issue also happens when I do this: PHP Code: $this->db->where('Server_Id', $Id); RE: MySql LIKE - glennm - 02-17-2016 Is there anyone that can help me with this issue? It is a real big problem for me. RE: MySql LIKE - keulu - 02-17-2016 did you try to escape your search ? !Joker! -> \!Joker\! RE: MySql LIKE - Narf - 02-17-2016 What are the strings that are expected to match but don't? RE: MySql LIKE - glennm - 02-17-2016 (02-17-2016, 08:34 AM)keulu Wrote: did you try to escape your search ? The problem is only when the string starts with an '!', if the '!' is in the middle of the string or the end there is no problem. (02-17-2016, 09:19 AM)Narf Wrote: What are the strings that are expected to match but don't? Can always be different, users can search for usernames. At the moment I have 1.441.321 usernames saved in my database. But usernames like these give issues: ! Astro ! !!! !Buddla! !l †r€d¡(¡ !2 !f:g:g RE: MySql LIKE - Narf - 02-17-2016 Quote:mysql> create table test (dummy varchar(16) not null); It should work ... RE: MySql LIKE - glennm - 02-17-2016 (02-17-2016, 11:27 AM)Narf Wrote:Quote:mysql> create table test (dummy varchar(16) not null); Over 1 million usernames and this query gives 0 result: Code: SELECT * I really don't know where the problem is. RE: MySql LIKE - glennm - 02-17-2016 When I use this query (without escaping it): Code: SELECT * I get 3646 results. RE: MySql LIKE - Narf - 02-17-2016 Well, that's really strange ... I don't know what could possibly cause this behavior. Technically, you could change the escape character and work-around the issue that way, but I'm guessing that if you're allowing '!' in usernames, you'd allow everything else as well, and in that case this wouldn't help. RE: MySql LIKE - glennm - 02-17-2016 (02-17-2016, 12:12 PM)Narf Wrote: Well, that's really strange ... I don't know what could possibly cause this behavior. Indeed, the problem is that I am scanning and gathering all users from an online game and I made a user search site. The game lets people use every character available (even chinees and special chars). . Every possible search works unless the string starts with '!' I don't know what I can do to fix this, that is why I asked here. |