Inverse of SQL LIKE '%value%' Inverse of SQL LIKE '%value%' database database

Inverse of SQL LIKE '%value%'


You can use the column on the right of the like too:

SELECT domain FROM table WHERE 'www.google.com' LIKE CONCAT('%', domain);

or

SELECT domain FROM table WHERE 'www.google.com' LIKE CONCAT('%', domain, '%');

It's not particularly efficient but it works.


In mysql you can use regular expressions (RLIKE) to perform matches. Given this ability you could do something like this:

SELECT * FROM table WHERE 'www.google.com' RLIKE domain;

It appears that the way RLIKE has been implemented it is even smart enough to treat the dot in that field (normally a wildcard in regex) as a literal dot.

MySQL's inclusion of regular expressions gives you a very powerful ability to parse and search strings. If you would like to know more about regular expressions, just google "regex". You can also use one of these links:

http://en.wikipedia.org/wiki/Regular_expression

http://www.regular-expressions.info/

http://www.codeproject.com/KB/string/re.aspx


You could use a bit of SQL string manipulation to generate the equivalent of string.EndsWith():

SELECT * FROM table WHERE  substring('www.google.com',len('www.google.com') - len([domain]) ,len([domain])+1) = [domain]