正規表現でいう ^a_c.* みたいなのをひっかけようと思って, my ($sql, @binds) = SQL::Abstract->new()->select( # table 'foo', # fields [ '*' ], # where { id => { LIKE => 'a_c%' }, }, ); みたくやると,a_code だけでなく abc もマッチしてしまう罠。 PostgreSQL だと,デフォルトでエスケープ文字が \ になってるので, # where { id => { LIKE => 'a\\_c%' }, }, のようにエスケープすればいい(MySQL だとどうなんだろ)。 でも,たとえば SQLite はデフォルトでエスケープ文字が設定されてない。だから LIKE などのあとに ESCAPE を指定するのが本筋。なんだけど,SQL::Abstract でふ