I want to grab from a db a record with name=’John Doe’.
I’d like my query to also grab ‘John(4 spaces between)Doe’,’John(2 spaces betwewen)Doe’ etc. (at least one space however).
I’d also like that the case won’t matter, so I can also get ‘John Doe’ by typing
‘john doe’ etc.
Try this:
use like with wildcards (e.g. %) to get around the spaces and the lower (orlcase) to be case insensitive.
EDIT:
As the commenters pointed out, there are two shortcomings within this solution.
First: you will select “johnny doe” or worse “john Eldoe”, or worse, “john Macadoelt” with this query, so you’ll need extra filtering on the application side.
Second: using a function can lead to table scans instead of index scans. This may be avoided, if your dbms supports function based indexes. See this Oracle example