in reply to Parsing a boolean search string for SQL query
But it is not perfect as you can see.#!/usr/bin/perl -w use strict; my $searchstring = "aaaa OR bbbb OR cccc OR dddd"; $searchstring =~ s/(\w+) ?(OR|NOT|AND)|(\w+)$/\(fieldname \= '$1$3'\) +$2/g; print "SELECT * FROM tablename WHERE $searchstring\n"; __OUTPUT__ Use of uninitialized value in concatenation (.) or string at a.pl line + 7. Use of uninitialized value in concatenation (.) or string at a.pl line + 7. Use of uninitialized value in concatenation (.) or string at a.pl line + 7. Use of uninitialized value in concatenation (.) or string at a.pl line + 7. Use of uninitialized value in concatenation (.) or string at a.pl line + 7. SELECT * FROM tablename WHERE (fieldname = 'aaaa') OR (fieldname = 'bb +bb') OR (fieldname = 'cccc') OR (fieldname = 'dddd')
|
|---|