Use % to escape % cqlsh:test> select * from escape;
id | val ----+----------- 1 | %escapeme 2 | escape%me Contains search cqlsh:test> SELECT * FROM escape WHERE val LIKE '%%esc%'; id | val ----+----------- 1 | %escapeme (1 rows) Prefix search cqlsh:test> SELECT * FROM escape WHERE val LIKE 'escape%%'; id | val ----+----------- 2 | escape%me On Tue, Sep 13, 2016 at 5:06 PM, Mikhail Krupitskiy < mikhail.krupits...@jetbrains.com> wrote: > Hi Cassandra guys, > > I use Cassandra 3.7 and wondering how to use ‘%’ as a simple char in a > search pattern. > Here is my test script: > > DROP keyspace if exists kmv; > CREATE keyspace if not exists kmv WITH REPLICATION = { 'class' : > 'SimpleStrategy', 'replication_factor':'1'} ; > USE kmv; > CREATE TABLE if not exists kmv (id int, c1 text, c2 text, PRIMARY KEY(id, > c1)); > CREATE CUSTOM INDEX ON kmv.kmv ( c2 ) USING > 'org.apache.cassandra.index.sasi.SASIIndex' > WITH OPTIONS = { > 'analyzed' : 'true', > 'analyzer_class' : 'org.apache.cassandra.index.sasi.analyzer. > NonTokenizingAnalyzer', > 'case_sensitive' : 'false', > 'mode' : 'CONTAINS' > }; > > INSERT into kmv (id, c1, c2) values (1, 'f22', 'qwe%asd'); > INSERT into kmv (id, c1, c2) values (2, 'f22', '%asd'); > INSERT into kmv (id, c1, c2) values (3, 'f22', 'asd%'); > INSERT into kmv (id, c1, c2) values (4, 'f22', 'asd%1'); > INSERT into kmv (id, c1, c2) values (5, 'f22', 'qweasd'); > > SELECT c2 from kmv.kmv where c2 like ‘_pattern_'; > > _pattern_ '%%%' finds all columns that contain %. > How to find columns that start form ‘%’ or ‘%a’? > How to find columns that end with ‘%’? > What about more complex patterns: '%qwe%a%sd%’? How to differentiate ‘%’ > char form % as a command symbol? (Also there is a related issue > CASSANDRA-12573). > > > Thanks, > Mikhail