Backwards LIKE Statements
Sometimes you need to think backwards.
Here was the problem. I needed to match up some IP address ranges to the company that owns them. Looking for a simple solution to the problem I came up with storing the IP address block patterns in the database as follows:
ip_pattern ---------------- 127.%.%.% 192.168.%.% 10.%.%.%
Any idea why I choose
% as the wildcard?
That's right - it's the wildcard operator in SQL for the
So now when I have have an IP address
192.168.1.1, I can do what I like to call a backwards LIKE query:
SELECT company, ip_pattern FROM company_blocks WHERE '192.168.1.1' LIKE ip_pattern
This works on SQL Server and MySQL, and I would think it should work fine on any database server.
Like this? Follow me ↯Tweet Follow @pfreitag
Backwards LIKE Statements was first published on January 10, 2007.
If you like reading about ip, sql, like, mysql, or sqlserver then you might also like:
- Order by NULL Values in MySQL, Postgresql and SQL Server
- INFORMATION_SCHEMA Support in MySQL, PostgreSQL
- SQL to Select a random row from a database table
- SQL Reserved Key Words Checker Tool
- Top 10 Reserved SQL Keywords
- SQL Case Statement
- Getting ColdFusion SQL Statements from SQL Server Trace
- Try Catch for SQLServer T-SQL