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
You might also like:
- INFORMATION_SCHEMA Support in MySQL, PostgreSQL - February 18, 2008
- SQL to Select a random row from a database table - September 14, 2005
- SQL Reserved Key Words Checker Tool - March 28, 2005
- Top 10 Reserved SQL Keywords - October 28, 2008
- SQL Case Statement - October 15, 2008
- Getting ColdFusion SQL Statements from SQL Server Trace - June 16, 2008
- Try Catch for SQLServer T-SQL - April 7, 2008
- Calculating Distance in Miles from Latitude and Longitude - January 18, 2007